Explorar el Código

修改项目流转流程表单

余思翰 hace 1 año
padre
commit
5a6cb7eae6

+ 1
- 1
oa-ui/src/assets/styles/ruoyi.scss Ver fichero

78
 }
78
 }
79
 
79
 
80
 .el-dialog:not(.is-fullscreen) {
80
 .el-dialog:not(.is-fullscreen) {
81
-  margin-top: 6vh !important;
81
+  margin-top: 12vh !important;
82
 }
82
 }
83
 
83
 
84
 .el-dialog__wrapper.scrollbar .el-dialog .el-dialog__body {
84
 .el-dialog__wrapper.scrollbar .el-dialog .el-dialog__body {

+ 350
- 0
oa-ui/src/views/flowable/form/projectProcess/addproject.vue Ver fichero

1
+<!--
2
+ * @Author: ysh
3
+ * @Date: 2024-02-27 14:49:15
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-03-19 11:10:54
6
+-->
7
+
8
+<template>
9
+  <div class="project-wrapper">
10
+    <!-- 项目登记 -->
11
+    <h2 style="text-align: center;">项目登记</h2>
12
+    <el-form :model="addForm" :rules="rules" label-width="100px" :disable="disable">
13
+      <el-form-item label="项目编号:" prop="projectNumber">
14
+        <el-input v-model="addForm.projectNumber"></el-input>
15
+      </el-form-item>
16
+      <el-form-item label="项目名称:" prop="projectName">
17
+        <el-input v-model="addForm.projectName"></el-input>
18
+      </el-form-item>
19
+      <el-form-item label="项目负责人:" prop="projectLeader">
20
+        <el-tag effect="plain" type="warning" style="margin-right: 10px;"
21
+          v-if="addForm.projectLeader != undefined">{{ addForm.projectLeader }}</el-tag>
22
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="choosePeople">选择</el-button>
23
+      </el-form-item>
24
+      <el-form-item label="项目类型:" prop="projectType">
25
+        <el-input v-model="addForm.projectType"></el-input>
26
+      </el-form-item>
27
+      <el-form-item label="项目级别:" prop="projectLevel">
28
+        <el-radio v-model="addForm.projectLevel" label="0">一般项目</el-radio>
29
+        <el-radio v-model="addForm.projectLevel" label="1">重大项目</el-radio>
30
+      </el-form-item>
31
+      <el-form-item label="项目来源:" prop="projectSource">
32
+        <el-radio v-model="addForm.projectSource" label="0">院内</el-radio>
33
+        <el-radio v-model="addForm.projectSource" label="1">院外</el-radio>
34
+      </el-form-item>
35
+      <el-form-item label="甲方单位:" prop="partyA">
36
+        <el-autocomplete class="inline-input" v-model="addForm.partyA" :fetch-suggestions="querySearch"
37
+          placeholder="请输入内容" style="width:100%"></el-autocomplete>
38
+        <!-- <el-input v-model="addForm.partyA"></el-input> -->
39
+      </el-form-item>
40
+      <el-form-item label="联系人:" prop="contactPerson">
41
+        <el-input v-model="addForm.contactPerson"></el-input>
42
+      </el-form-item>
43
+      <el-form-item label="联系电话:" prop="telephone">
44
+        <el-input v-model="addForm.telephone"></el-input>
45
+      </el-form-item>
46
+      <el-form-item label="项目概况:" prop="projectRegistrant">
47
+        <table border="1">
48
+          <tr>
49
+            <td style="width:250px;">工作内容</td>
50
+            <td>等级或比例尺</td>
51
+            <td>单位</td>
52
+            <td>工作量</td>
53
+            <td style="width:100px;">要求完成时间</td>
54
+            <td>备注</td>
55
+          </tr>
56
+          <tr v-for="(work, index) in workList" :key="index">
57
+            <td>
58
+              <el-input v-model="work.content" type="textarea" autosize clearable></el-input>
59
+            </td>
60
+            <td>
61
+              <el-input v-model="work.scale" clearable></el-input>
62
+            </td>
63
+            <td>
64
+              <el-input v-model="work.unit" clearable></el-input>
65
+            </td>
66
+            <td>
67
+              <el-input v-model="work.workload" clearable></el-input>
68
+            </td>
69
+            <td>
70
+              <el-date-picker style="width:140px;" v-model="work.deadline" value-format="yyyy-MM-dd" type="date"
71
+                placeholder="选择日期">
72
+              </el-date-picker>
73
+            </td>
74
+            <td>
75
+              <el-input v-model="work.remark" type="textarea" autosize clearable></el-input>
76
+            </td>
77
+            <td>
78
+              <el-button type="danger" icon="el-icon-minus" size="mini" circle
79
+                @click="deletWorkItem(index)"></el-button>
80
+            </td>
81
+          </tr>
82
+        </table>
83
+
84
+        <el-button icon="el-icon-plus" size="mini" @click="addWorkList"></el-button>
85
+      </el-form-item>
86
+      <el-form-item label="项目登记人:" prop="projectRegistrant">
87
+        <el-input v-model="addForm.projectRegistrant"></el-input>
88
+      </el-form-item>
89
+      <el-form-item label="备注:" prop="projectRegistrant">
90
+        <el-input v-model="addForm.remark" type="textarea" rows="3"></el-input>
91
+      </el-form-item>
92
+
93
+    </el-form>
94
+    <div slot="footer" class="dialog-footer" style="text-align: center;">
95
+      <el-button type="primary" @click="confirmAddForm">确 定</el-button>
96
+      <el-button @click="cancel">取 消</el-button>
97
+    </div>
98
+    <!-- 人员选择对话框 -->
99
+    <el-dialog width="320px" title="选择项目负责人" :visible.sync="peopleVisible" append-to-body>
100
+      <el-form>
101
+        <el-form-item label="部门:">
102
+          <el-select v-model="peopleForm.deptId" @change="handleChangeDept">
103
+            <el-option v-for="item in peopleForm.deptList" :key="item.deptId" :label="item.deptName"
104
+              :value="item.deptId" v-if="item.deptName != '四川中水成勘院测绘工程有限责任公司'">
105
+            </el-option>
106
+          </el-select>
107
+        </el-form-item>
108
+        <el-form-item label="人员:">
109
+          <el-select v-model="peopleForm.userId">
110
+            <el-option v-for="item in peopleForm.userList" :key="item.userId" :label="item.nickName"
111
+              :value="item.userId">
112
+            </el-option>
113
+          </el-select>
114
+        </el-form-item>
115
+        <el-form-item style="text-align: center;">
116
+          <el-button @click="confirmPeople" type="primary">确定</el-button>
117
+          <el-button @click="cancelChoosePeople">取消</el-button>
118
+        </el-form-item>
119
+      </el-form>
120
+    </el-dialog>
121
+
122
+  </div>
123
+</template>
124
+
125
+<script>
126
+import { listProject, submitProject, modifyProject, delProject } from "@/api/oa/project/project";
127
+import { listDept } from '@/api/system/dept'
128
+import { listUser, getUser } from '@/api/system/user'
129
+export default {
130
+  props: {
131
+    disable: {
132
+      type: Boolean,
133
+      require: true
134
+    }
135
+  },
136
+  data() {
137
+    return {
138
+      // 查询参数
139
+      queryParams: {
140
+        pageNum: 1,
141
+        pageSize: 10,
142
+        projectNumber: '',
143
+        projectLeader: '',
144
+        projectLeaderName: undefined,
145
+        projectName: '',
146
+      },
147
+      projectList: [],
148
+      total: 0,
149
+      loading: true,
150
+      addOpen: false,
151
+      modifyOpen: false,
152
+      title: '',
153
+      addForm: {},
154
+      rules: {
155
+        projectNumber: [{ required: true, message: '请输入项目编号', trigger: 'blur' }],
156
+        projectName: [{ required: true, message: '请输入项目名称', trigger: 'blur' }]
157
+      },
158
+      peopleVisible: false,
159
+      peopleForm: {
160
+        deptId: '',
161
+        deptList: [],
162
+        userId: '',
163
+        userList: []
164
+      },
165
+      workList: [{
166
+        content: '',
167
+        scale: '',
168
+        unit: '',
169
+        workload: '',
170
+        deadline: '',
171
+        remark: ''
172
+      }],
173
+      restaurants: [
174
+        { "value": "中国电建集团成都勘测设计研究院有限公司" }
175
+      ]
176
+    }
177
+  },
178
+  created() {
179
+    this.getList();
180
+    this.getDeptList();
181
+  },
182
+  methods: {
183
+    // 查询项目列表
184
+    getList() {
185
+      this.loading = true
186
+      listProject(this.queryParams).then(response => {
187
+        this.projectList = [];
188
+        for (let p of response.rows) {
189
+          if (p.projectLeader != null) {
190
+            getUser(Number(p.projectLeader)).then(res => {
191
+              p.projectLeaderName = res.data.nickName;
192
+            })
193
+          }
194
+          this.projectList.push(p);
195
+        }
196
+        this.total = response.total;
197
+        this.loading = false;
198
+      })
199
+    },
200
+    getDeptList() {
201
+      listDept({
202
+        deptName: undefined,
203
+        status: undefined
204
+      }).then(res => {
205
+        this.peopleForm.deptList = res.data
206
+      })
207
+    },
208
+    handleQuery() {
209
+      this.queryParams.pageNum = 1;
210
+      this.getList();
211
+    },
212
+    handleAdd() {
213
+      this.title = '新增项目'
214
+      this.addOpen = true
215
+    },
216
+    handleUpdate(row) {
217
+      debugger
218
+      this.addForm = row;
219
+      this.title = '修改项目信息';
220
+      this.addOpen = true;
221
+    },
222
+    handleDelete(row) {
223
+      const projectIds = row.projectId || this.ids;
224
+      const projectNumbers = row.projectNumber || this.ids;
225
+      this.$modal.confirm('是否确认删除项目编号为"' + projectNumbers + '"的数据项?').then(function () {
226
+        return delProject(projectIds);
227
+      }).then(() => {
228
+        this.getList();
229
+        this.$modal.msgSuccess("删除成功");
230
+      }).catch(() => { });
231
+    },
232
+    confirmAddForm() {
233
+      this.addForm.workList = this.workList;
234
+      let formData = new FormData();
235
+      let form = JSON.stringify(this.addForm);
236
+      formData.append("form", form);
237
+      console.log(this.title);
238
+      if (this.title == '新增项目')
239
+        submitProject(formData).then(response => {
240
+          this.$modal.msgSuccess("新增成功");
241
+          this.addOpen = false;
242
+          this.getList();
243
+        });
244
+      else
245
+        modifyProject(formData).then(response => {
246
+          this.$modal.msgSuccess("修改成功");
247
+          this.addOpen = false;
248
+          this.getList();
249
+        });
250
+    },
251
+    // 人员选择
252
+    choosePeople() {
253
+      this.peopleVisible = true;
254
+    },
255
+    // 改变部门选择
256
+    handleChangeDept(deptId) {
257
+      this.peopleForm.userId = '';
258
+      listUser({ pageSize: 999999, deptId }).then(res => {
259
+        console.log(res);
260
+        this.peopleForm.userList = res.rows
261
+      })
262
+    },
263
+    // 确定项目负责人
264
+    confirmPeople() {
265
+      this.addForm.projectLeader = this.peopleForm.userId;
266
+      this.addForm.projectLeader = this.tagLeader()
267
+      this.peopleVisible = false
268
+    },
269
+    tagLeader() {
270
+      if (this.addForm.projectLeader == '' || this.addForm.projectLeader == undefined || this.addForm.projectLeader == null) {
271
+        return undefined
272
+      } else {
273
+        for (let user of this.peopleForm.userList) {
274
+          if (this.addForm.projectLeader == user.userId) {
275
+            return user.nickName
276
+          }
277
+        }
278
+      }
279
+    },
280
+    cancel() {
281
+      this.peopleForm.deptId = '';
282
+      this.peopleForm.userId = '';
283
+      this.addOpen = false;
284
+      this.addForm = {}
285
+    },
286
+    addWorkList() {
287
+      this.workList.push({
288
+        content: '',
289
+        scale: '',
290
+        unit: '',
291
+        workload: '',
292
+        deadline: '',
293
+        remark: ''
294
+      });
295
+    },
296
+    deletWorkItem(index) {
297
+      let arr = this.workList
298
+      if (arr.length == 1) {
299
+        return
300
+      }
301
+      if (index >= 0 && index < arr.length) {
302
+        arr.splice(index, 1);
303
+      }
304
+    },
305
+    cancelChoosePeople() {
306
+      this.peopleForm.deptId = '';
307
+      this.peopleForm.userId = '';
308
+      this.peopleVisible = false;
309
+    },
310
+    querySearch(queryString, cb) {
311
+      var restaurants = this.restaurants;
312
+      var results = queryString ? restaurants.filter(this.createFilter(queryString)) : restaurants;
313
+      // 调用 callback 返回建议列表的数据
314
+      cb(results);
315
+    },
316
+    createFilter(queryString) {
317
+      return (restaurant) => {
318
+        return (restaurant.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0);
319
+      };
320
+    },
321
+  },
322
+}
323
+</script>
324
+
325
+<style lang="scss" scoped>
326
+.project-wrapper {
327
+  padding: 25px;
328
+}
329
+
330
+.table-header {
331
+  background-color: #f5f5f5;
332
+}
333
+
334
+.card-header {
335
+  display: flex;
336
+  justify-content: space-between;
337
+  padding: 0 10px;
338
+}
339
+
340
+table {
341
+  /*居中*/
342
+  margin: 0 auto;
343
+  /*边框*/
344
+  /* border: 1px solid black; */
345
+  text-align: center;
346
+  border-collapse: collapse;
347
+  /*设置背景颜色*/
348
+  /* background-color: #bfa; */
349
+}
350
+</style>

+ 71
- 0
oa-ui/src/views/flowable/form/projectProcess/arrangeProject.vue Ver fichero

1
+<!--
2
+ * @Author: ysh
3
+ * @Date: 2024-03-19 09:24:06
4
+ * @LastEditors: Please set LastEditors
5
+ * @LastEditTime: 2024-03-19 11:27:04
6
+-->
7
+<template>
8
+  <div class="app-container">
9
+    <h2 style="text-align: center;">项目登记</h2>
10
+    <el-form :model="form" :rules="rules" label-width="100px" :disable="disable">
11
+      <el-form-item label="承担部门:" prop="undertakingDept">
12
+        <el-select v-model="form.deptId" multiple clearable  style="width:500px">
13
+          <el-option v-for="item in deptList" :key="item.deptId" :label="item.deptName" :value="item.deptId"
14
+            v-if="item.deptName != '四川中水成勘院测绘工程有限责任公司'">
15
+          </el-option>
16
+        </el-select>
17
+      </el-form-item>
18
+      <el-form-item label="部门负责人" prop="deptLeader">
19
+        <el-input v-model="form.deptLeader"></el-input>
20
+      </el-form-item>
21
+      <el-form-item label="项目负责人" prop="projectLeader">
22
+        <el-tag effect="plain" type="warning" style="margin-right: 10px;">{{ form.projectLeader }}</el-tag>
23
+        <el-button type="primary" plain size="mini">更换</el-button>
24
+      </el-form-item>
25
+      <el-form-item label="现场负责人">
26
+        <el-input v-model="form.deptLeader"></el-input>
27
+      </el-form-item>
28
+      <el-form-item label="项目预算">
29
+        <el-input v-model="form.deptLeader"></el-input>
30
+      </el-form-item>
31
+    </el-form>
32
+    
33
+  </div>
34
+</template>
35
+
36
+<script>
37
+import { listDept } from '@/api/system/dept'
38
+export default {
39
+  props: {
40
+    disable: {
41
+      type: Boolean,
42
+      require: true
43
+    }
44
+  },
45
+  data() {
46
+    return {
47
+      form: {},
48
+      rules: {},
49
+      deptList: [],
50
+      file:{
51
+        fileList:[]
52
+      }
53
+    }
54
+  },
55
+  created() {
56
+    this.getDeptList();
57
+  },
58
+  methods: {
59
+    getDeptList() {
60
+      listDept({
61
+        deptName: undefined,
62
+        status: undefined
63
+      }).then(res => {
64
+        this.deptList = res.data
65
+      })
66
+    },
67
+  }
68
+}
69
+</script>
70
+
71
+<style lang="scss" scoped></style>

+ 41
- 110
oa-ui/src/views/flowable/form/projectProcess/index.vue Ver fichero

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-03-05 11:35:07
5
+ * @LastEditTime: 2024-03-19 10:11:01
6
 -->
6
 -->
7
 
7
 
8
 <template>
8
 <template>
9
   <div class="project-wrapper">
9
   <div class="project-wrapper">
10
-    <!-- 新建项目 -->
11
-    <h2>经营管理部登记</h2>
12
-    <el-form :model="addForm" :rules="rules" label-width="100px">
13
-      <el-form-item label="项目编号:" prop="projectNumber">
14
-        <el-input v-model="addForm.projectNumber"></el-input>
15
-      </el-form-item>
16
-      <el-form-item label="项目名称:" prop="projectName">
17
-        <el-input v-model="addForm.projectName"></el-input>
18
-      </el-form-item>
19
-      <el-form-item label="项目负责人:" prop="projectLeader">
20
-        <el-tag effect="plain" type="warning" style="margin-right: 10px;"
21
-          v-if="addForm.projectLeaderName != undefined">{{ addForm.projectLeaderName }}</el-tag>
22
-        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="choosePeople">选择</el-button>
23
-      </el-form-item>
24
-      <el-form-item label="项目类型:" prop="projectType">
25
-        <el-input v-model="addForm.projectType"></el-input>
26
-      </el-form-item>
27
-      <el-form-item label="项目级别:" prop="projectLevel">
28
-        <el-radio v-model="addForm.projectLevel" label="0">一般项目</el-radio>
29
-        <el-radio v-model="addForm.projectLevel" label="1">重大项目</el-radio>
30
-      </el-form-item>
31
-      <el-form-item label="项目来源:" prop="projectSource">
32
-        <el-radio v-model="addForm.projectSource" label="0">院内</el-radio>
33
-        <el-radio v-model="addForm.projectSource" label="1">院外</el-radio>
34
-      </el-form-item>
35
-      <el-form-item label="甲方单位:" prop="partyA">
36
-        <el-input v-model="addForm.partyA"></el-input>
37
-      </el-form-item>
38
-      <el-form-item label="联系人:" prop="contactPerson">
39
-        <el-input v-model="addForm.contactPerson"></el-input>
40
-      </el-form-item>
41
-      <el-form-item label="联系电话:" prop="telephone">
42
-        <el-input v-model="addForm.telephone"></el-input>
43
-      </el-form-item>
44
-      <el-form-item label="项目概况:" prop="projectRegistrant">
45
-        <table border="1">
46
-          <tr>
47
-            <td style="width:250px;">工作内容</td>
48
-            <td>等级或比例尺</td>
49
-            <td>单位</td>
50
-            <td>工作量</td>
51
-            <td style="width:100px;">要求完成时间</td>
52
-            <td>备注</td>
53
-          </tr>
54
-          <tr v-for="(work, index) in workList" :key="index">
55
-            <td>
56
-              <el-input v-model="work.content" type="textarea" autosize clearable></el-input>
57
-            </td>
58
-            <td>
59
-              <el-input v-model="work.scale" clearable></el-input>
60
-            </td>
61
-            <td>
62
-              <el-input v-model="work.unit" clearable></el-input>
63
-            </td>
64
-            <td>
65
-              <el-input v-model="work.workload" clearable></el-input>
66
-            </td>
67
-            <td>
68
-              <el-date-picker style="width:140px;" v-model="work.deadline" value-format="yyyy-MM-dd" type="date"
69
-                placeholder="选择日期">
70
-              </el-date-picker>
71
-            </td>
72
-            <td>
73
-              <el-input v-model="work.remark" type="textarea" autosize clearable></el-input>
74
-            </td>
75
-            <td>
76
-              <el-button type="danger" icon="el-icon-minus" size="mini" circle
77
-                @click="deletWorkItem(index)"></el-button>
78
-            </td>
79
-          </tr>
80
-        </table>
81
 
10
 
82
-        <el-button icon="el-icon-plus" size="mini" @click="addWorkList"></el-button>
83
-      </el-form-item>
84
-      <el-form-item label="项目登记人:" prop="projectRegistrant">
85
-        <el-input v-model="addForm.projectRegistrant"></el-input>
86
-      </el-form-item>
87
-      <el-form-item label="备注:" prop="projectRegistrant">
88
-        <el-input v-model="addForm.remark" type="textarea" rows="3"></el-input>
89
-      </el-form-item>
11
+    <el-tabs tabPosition="left" type="card" class="tabs-border" v-model="activeName">
12
+      <el-tab-pane label="项目登记">
13
+        <addproject :disable="taskName != '项目登记'"></addproject>
14
+      </el-tab-pane>
15
+      <el-tab-pane label="项目安排">
16
+        <arrangeProject :disable="false"></arrangeProject>
17
+      </el-tab-pane>
18
+      <el-tab-pane label="技术交底"></el-tab-pane>
19
+      <el-tab-pane label="安全交底"></el-tab-pane>
20
+      <el-tab-pane label="经营审核"></el-tab-pane>
21
+      <el-tab-pane label="分管审核"></el-tab-pane>
22
+      <el-tab-pane label="项目生产"></el-tab-pane>
23
+      <el-tab-pane label="质量检查"></el-tab-pane>
24
+      <el-tab-pane label="成果归档"></el-tab-pane>
25
+    </el-tabs>
90
 
26
 
91
-    </el-form>
92
-    <div slot="footer" class="dialog-footer" style="text-align: center;">
93
-      <el-button type="primary" @click="confirmAddForm">确 定</el-button>
94
-      <el-button @click="cancel">取 消</el-button>
95
-    </div>
96
-    <!-- 人员选择对话框 -->
97
-    <el-dialog width="30%" title="选择项目负责人" :visible.sync="peopleVisible" append-to-body>
98
-      <el-form>
99
-        <el-form-item label="部门:">
100
-          <el-select v-model="peopleForm.deptId" @change="handleChangeDept">
101
-            <el-option v-for="item in peopleForm.deptList" :key="item.deptId" :label="item.deptName"
102
-              :value="item.deptId" v-if="item.deptName != '四川中水成勘院测绘工程有限责任公司'">
103
-            </el-option>
104
-          </el-select>
105
-        </el-form-item>
106
-        <el-form-item label="人员:">
107
-          <el-select v-model="peopleForm.userId">
108
-            <el-option v-for="item in peopleForm.userList" :key="item.userId" :label="item.nickName"
109
-              :value="item.userId">
110
-            </el-option>
111
-          </el-select>
112
-        </el-form-item>
113
-        <el-form-item>
114
-          <el-button @click="confirmPeople" type="primary">确定</el-button>
115
-          <el-button @click="cancelChoosePeople">取消</el-button>
116
-        </el-form-item>
117
-      </el-form>
118
-    </el-dialog>
119
 
27
 
120
   </div>
28
   </div>
121
 </template>
29
 </template>
122
 
30
 
123
 <script>
31
 <script>
124
-import { listProject, submitProject, modifyProject, delProject } from "@/api/oa/project/project";
32
+import { listProject, submitProject, modifyProject, delProject } from "@/api/oa/project/project"
125
 import { listDept } from '@/api/system/dept'
33
 import { listDept } from '@/api/system/dept'
126
 import { listUser, getUser } from '@/api/system/user'
34
 import { listUser, getUser } from '@/api/system/user'
35
+import addproject from "./addproject.vue"
36
+import arrangeProject from "./arrangeProject.vue"
127
 export default {
37
 export default {
38
+  props: {
39
+    taskName: {
40
+      type: String
41
+    }
42
+  },
43
+  components: {
44
+    addproject,
45
+    arrangeProject
46
+  },
128
   data() {
47
   data() {
129
     return {
48
     return {
49
+      activeName: taskName,
130
       // 查询参数
50
       // 查询参数
131
       queryParams: {
51
       queryParams: {
132
         pageNum: 1,
52
         pageNum: 1,
325
   /*设置背景颜色*/
245
   /*设置背景颜色*/
326
   /* background-color: #bfa; */
246
   /* background-color: #bfa; */
327
 }
247
 }
328
-</style>
248
+
249
+.tabs-border {
250
+  border: 1px solid #DCDFE6;
251
+  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), 0 0 6px 0 rgba(0, 0, 0, 0.04);
252
+}
253
+
254
+
255
+::v-deep .el-tabs__item {
256
+  line-height: 60px;
257
+  height: 60px;
258
+}
259
+</style>./arrangeProject.vue

+ 18
- 12
oa-ui/src/views/flowable/task/todo/detail/index.vue Ver fichero

22
             v-else-if="taskForm.procDefName == '财务部考核'"></cw-table>
22
             v-else-if="taskForm.procDefName == '财务部考核'"></cw-table>
23
           <zh-table :tableForm="tableForm" :taskName="taskName" @submit="handleComplete"
23
           <zh-table :tableForm="tableForm" :taskName="taskName" @submit="handleComplete"
24
             v-else-if="taskForm.procDefName == '综合事务部考核'"></zh-table>
24
             v-else-if="taskForm.procDefName == '综合事务部考核'"></zh-table>
25
-          <car-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '用车审批'" @goBack="goBack"></car-form>
26
-          <car-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '用车审批(工会)'" @goBack="goBack"></car-form>
25
+          <car-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '用车审批'"
26
+            @goBack="goBack"></car-form>
27
+          <car-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '用车审批(工会)'"
28
+            @goBack="goBack"></car-form>
27
           <device-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '设备审批'"
29
           <device-form :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '设备审批'"
28
             @goBack="goBack"></device-form>
30
             @goBack="goBack"></device-form>
31
+          <project-process :taskName="taskName" :taskForm="taskForm" v-else-if="taskForm.procDefName == '项目流转'"
32
+            @goBack="goBack"></project-process>
29
           <el-row type="flex" justify="center" v-show="isShowApprove()">
33
           <el-row type="flex" justify="center" v-show="isShowApprove()">
30
             <el-button v-if="!formKeyExist" icon="el-icon-edit-outline" type="success" size="mini"
34
             <el-button v-if="!formKeyExist" icon="el-icon-edit-outline" type="success" size="mini"
31
               @click="handleComplete">审核通过
35
               @click="handleComplete">审核通过
164
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
168
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
165
 import { listUser } from "@/api/system/user";
169
 import { listUser } from "@/api/system/user";
166
 import { getAssess, modifyAssess, submitAssess, listAssess } from '@/api/oa/assess/assess';
170
 import { getAssess, modifyAssess, submitAssess, listAssess } from '@/api/oa/assess/assess';
167
-import ScTable from "../../../form/scTable.vue";
168
-import JyTable from "../../../form/jyTable.vue";
169
-import ZhTable from "../../../form/zhTable.vue";
170
-import JsTable from "../../../form/jsTable.vue";
171
-import XmTable from "../../../form/xmTable.vue";
172
-import CwTable from "../../../form/cwTable.vue";
173
-import carForm from "../../../form/carForm.vue";
174
-import deviceForm from "../../../form/deviceForm";
171
+import ScTable from "@/views/flowable/form/scTable.vue";
172
+import JyTable from "@/views/flowable/form/jyTable.vue";
173
+import ZhTable from "@/views/flowable/form/zhTable.vue";
174
+import JsTable from "@/views/flowable/form/jsTable.vue";
175
+import XmTable from "@/views/flowable/form/xmTable.vue";
176
+import CwTable from "@/views/flowable/form/cwTable.vue";
177
+import carForm from "@/views/flowable/form/carForm.vue";
178
+import deviceForm from "@/views/flowable/form/deviceForm";
179
+import projectProcess from "@/views/flowable/form/projectProcess/index.vue"
175
 
180
 
176
 export default {
181
 export default {
177
   name: "Record",
182
   name: "Record",
187
     CwTable,
192
     CwTable,
188
     JyTable,
193
     JyTable,
189
     carForm,
194
     carForm,
190
-    deviceForm
195
+    deviceForm,
196
+    projectProcess
191
   },
197
   },
192
   props: {},
198
   props: {},
193
   data() {
199
   data() {
543
     },
549
     },
544
     // 是否显示审批通过
550
     // 是否显示审批通过
545
     isShowApprove() {
551
     isShowApprove() {
546
-      if (this.taskName == '员工填报' || this.taskForm.procDefName == '用车审批' || this.taskForm.procDefName == '用车审批(工会)' || this.taskForm.procDefName == '设备审批') {
552
+      if (this.taskName == '员工填报' || this.taskForm.procDefName == '用车审批' || this.taskForm.procDefName == '用车审批(工会)' || this.taskForm.procDefName == '设备审批'|| this.taskForm.procDefName == '项目流转') {
547
         return false
553
         return false
548
       } else {
554
       } else {
549
         return true
555
         return true

+ 36
- 31
oa-ui/src/views/index.vue Ver fichero

2
  * @Author: ysh
2
  * @Author: ysh
3
  * @Date: 2024-01-03 09:23:11
3
  * @Date: 2024-01-03 09:23:11
4
  * @LastEditors: Please set LastEditors
4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-03-14 14:22:50
5
+ * @LastEditTime: 2024-03-18 14:45:43
6
 -->
6
 -->
7
 
7
 
8
 <template>
8
 <template>
9
   <div class="app-container home">
9
   <div class="app-container home">
10
-    <el-row style="height:350px;" :gutter="20">
11
-      <el-col :span="6">
10
+    <el-row :gutter="20">
11
+      <el-col :span="6" :xs="24">
12
         <div class="header">个人信息</div>
12
         <div class="header">个人信息</div>
13
         <div class="user-wrapper">
13
         <div class="user-wrapper">
14
           <div class="avatar">
14
           <div class="avatar">
35
       <el-col :span="18" :xs="24">
35
       <el-col :span="18" :xs="24">
36
         <div class="header">快捷入口</div>
36
         <div class="header">快捷入口</div>
37
         <div class="nav-wrapper">
37
         <div class="nav-wrapper">
38
-          <div class="nav-item" v-for="nav in navItem" @click="goToPath(nav.id)">
38
+          <div class="nav-item" v-for="nav in navItem" @click="goToPath(nav.path)">
39
             <el-badge :value="formartBadge(nav.id)" :max="99" class="item">
39
             <el-badge :value="formartBadge(nav.id)" :max="99" class="item">
40
               <div class="nav-logo" :style="{ 'background-color': nav.bgColor, 'box-shadow': nav.boxShadow }">
40
               <div class="nav-logo" :style="{ 'background-color': nav.bgColor, 'box-shadow': nav.boxShadow }">
41
                 <div class="icon">
41
                 <div class="icon">
43
                 </div>
43
                 </div>
44
               </div>
44
               </div>
45
             </el-badge>
45
             </el-badge>
46
-
47
             <div class="nav-text">{{ nav.name }}</div>
46
             <div class="nav-text">{{ nav.name }}</div>
48
           </div>
47
           </div>
49
         </div>
48
         </div>
51
 
50
 
52
     </el-row>
51
     </el-row>
53
     <el-row :gutter="20">
52
     <el-row :gutter="20">
54
-      <el-col :span="8">
53
+      <el-col :span="8" :xs="24">
55
         <div class="header">日历</div>
54
         <div class="header">日历</div>
56
         <div class="calendar-warpper">
55
         <div class="calendar-warpper">
57
           <!-- <Calendar></Calendar> -->
56
           <!-- <Calendar></Calendar> -->
59
           </el-calendar>
58
           </el-calendar>
60
         </div>
59
         </div>
61
       </el-col>
60
       </el-col>
62
-      <el-col :span="8">
61
+      <el-col :span="8" :xs="24">
63
         <div class="header">公告</div>
62
         <div class="header">公告</div>
64
         <div class="notice-content">
63
         <div class="notice-content">
65
           <el-table v-loading="noticeLoading" :data="noticeList" height="320px">
64
           <el-table v-loading="noticeLoading" :data="noticeList" height="320px">
85
 
84
 
86
         </div>
85
         </div>
87
       </el-col>
86
       </el-col>
88
-      <el-col :span="8">
87
+      <el-col :span="8" :xs="24">
89
         <div class="header">项目流转</div>
88
         <div class="header">项目流转</div>
90
         <div class="project-content">
89
         <div class="project-content">
91
 
90
 
148
           name: '发起流程',
147
           name: '发起流程',
149
           icon: 'cascader',
148
           icon: 'cascader',
150
           bgColor: '#785aee',
149
           bgColor: '#785aee',
151
-          boxShadow: '0 5px 20px rgba(120,90,238,0.5)'
150
+          boxShadow: '0 5px 20px rgba(120,90,238,0.5)',
151
+          path: '/task/process'
152
         }, {
152
         }, {
153
           id: 2,
153
           id: 2,
154
           name: '待办任务',
154
           name: '待办任务',
155
           icon: 'log',
155
           icon: 'log',
156
           bgColor: '#e66794',
156
           bgColor: '#e66794',
157
-          boxShadow: '0 5px 20px rgba(230,103,148,0.5)'
157
+          boxShadow: '0 5px 20px rgba(230,103,148,0.5)',
158
+          path: '/task/todo'
158
         }, {
159
         }, {
159
           id: 3,
160
           id: 3,
160
           name: '已办任务',
161
           name: '已办任务',
161
           icon: 'excel',
162
           icon: 'excel',
162
           bgColor: '#6389f4',
163
           bgColor: '#6389f4',
163
-          boxShadow: '0 5px 20px rgba(99,137,244,0.5)'
164
+          boxShadow: '0 5px 20px rgba(99,137,244,0.5)',
165
+          path: '/task/finished'
164
         }, {
166
         }, {
165
           id: 4,
167
           id: 4,
166
           name: '项目管理',
168
           name: '项目管理',
167
           icon: 'dict',
169
           icon: 'dict',
168
           bgColor: '#e64c56',
170
           bgColor: '#e64c56',
169
-          boxShadow: '0 5px 20px rgba(230,76,86,0.5)'
171
+          boxShadow: '0 5px 20px rgba(230,76,86,0.5)',
172
+          path: '/project'
170
         }, {
173
         }, {
171
           id: 5,
174
           id: 5,
172
           name: '车辆管理',
175
           name: '车辆管理',
173
           icon: 'car',
176
           icon: 'car',
174
           bgColor: '#eeb62f',
177
           bgColor: '#eeb62f',
175
-          boxShadow: '0 5px 20px rgba(238,182,47,0.5)'
178
+          boxShadow: '0 5px 20px rgba(238,182,47,0.5)',
179
+          path: '/task/todo'
176
         }, {
180
         }, {
177
           id: 6,
181
           id: 6,
178
           name: '设备管理',
182
           name: '设备管理',
179
           icon: 'lock',
183
           icon: 'lock',
180
           bgColor: '#0be1bd',
184
           bgColor: '#0be1bd',
181
-          boxShadow: '0 5px 20px rgba(11,225,189,0.5)'
185
+          boxShadow: '0 5px 20px rgba(11,225,189,0.5)',
186
+          path: '/car'
187
+        }, {
188
+          id: 7,
189
+          name: '投标管理',
190
+          icon: 'example',
191
+          bgColor: '#F7C59F',
192
+          boxShadow: '0 5px 20px rgba(247,197,159,0.5)',
193
+          path: '/device'
182
         }
194
         }
183
       ]
195
       ]
184
     }
196
     }
185
   },
197
   },
186
   methods: {
198
   methods: {
187
-    goToPath(id) {
188
-      if (id == 1) {
189
-        this.$router.push({ path: "/task/process" });
190
-      } else if (id == 2) {
191
-        this.$router.push({ path: "/task/todo" });
192
-      } else if (id == 3) {
193
-        this.$router.push({ path: "/task/finished" });
194
-      } else if (id == 4) {
195
-        this.$router.push({ path: "/project" });
196
-      } else if (id == 5) {
197
-        this.$router.push({ path: "/car" });
198
-      } else if (id == 6) {
199
-        this.$router.push({ path: "/device" });
200
-      }
199
+    goToPath(path) {
200
+      this.$router.push({ path: path });
201
     },
201
     },
202
     getUserbyId() {
202
     getUserbyId() {
203
       getUser(this.userId).then(response => {
203
       getUser(this.userId).then(response => {
210
           }
210
           }
211
         }
211
         }
212
         this.getDicts("sys_user_titles").then(res => {
212
         this.getDicts("sys_user_titles").then(res => {
213
-          console.log(res);
214
           if (this.user.titles != "" && this.user.titles != null && this.user.titles != undefined) {
213
           if (this.user.titles != "" && this.user.titles != null && this.user.titles != undefined) {
215
             let titles = this.user.titles.split(',');
214
             let titles = this.user.titles.split(',');
216
             let arr = []
215
             let arr = []
296
   .nav-item {
295
   .nav-item {
297
     background-color: #ffffff;
296
     background-color: #ffffff;
298
     max-width: 240px;
297
     max-width: 240px;
298
+    width: 220px;
299
     flex-grow: 1;
299
     flex-grow: 1;
300
     height: 120px;
300
     height: 120px;
301
     border-radius: 10px;
301
     border-radius: 10px;
389
   text-align: center;
389
   text-align: center;
390
   line-height: 26px;
390
   line-height: 26px;
391
 }
391
 }
392
+
392
 ::v-deep .el-calendar-table .el-calendar-day:hover {
393
 ::v-deep .el-calendar-table .el-calendar-day:hover {
393
   color: #242d42;
394
   color: #242d42;
394
 }
395
 }
396
+
395
 ::v-deep .el-calendar__body {
397
 ::v-deep .el-calendar__body {
396
   padding: 15px 31px 10px;
398
   padding: 15px 31px 10px;
397
 }
399
 }
410
 ::v-deep .el-calendar-table td.is-selected {
412
 ::v-deep .el-calendar-table td.is-selected {
411
   // color: #242d42;
413
   // color: #242d42;
412
 }
414
 }
413
-::v-deep .el-calendar-table td{
415
+
416
+::v-deep .el-calendar-table td {
414
   border-right: none;
417
   border-right: none;
415
 }
418
 }
416
-::v-deep .el-table .el-table__header-wrapper th, .el-table .el-table__fixed-header-wrapper th{
419
+
420
+::v-deep .el-table .el-table__header-wrapper th,
421
+.el-table .el-table__fixed-header-wrapper th {
417
   background-color: #ffffff;
422
   background-color: #ffffff;
418
 }
423
 }
419
 </style>
424
 </style>

+ 262
- 300
oa-ui/src/views/oa/tender/index.vue Ver fichero

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="68px">
4
-      <el-form-item label="投标项目名称" prop="projectName">
5
-        <el-input
6
-          v-model="queryParams.projectName"
7
-          placeholder="请输入投标项目名称"
8
-          clearable
9
-          @keyup.enter.native="handleQuery"
10
-        />
4
+      <el-form-item label="投标项目名称" prop="projectName" label-width="100px">
5
+        <el-input v-model="queryParams.projectName" placeholder="请输入投标项目名称" clearable
6
+          @keyup.enter.native="handleQuery" />
11
       </el-form-item>
7
       </el-form-item>
12
       <el-form-item label="招标业主" prop="partyA">
8
       <el-form-item label="招标业主" prop="partyA">
13
-        <el-input
14
-          v-model="queryParams.partyA"
15
-          placeholder="请输入招标业主"
16
-          clearable
17
-          @keyup.enter.native="handleQuery"
18
-        />
19
-      </el-form-item>
20
-      <el-form-item label="业主联系人" prop="aPerson">
21
-        <el-input
22
-          v-model="queryParams.aPerson"
23
-          placeholder="请输入业主联系人"
24
-          clearable
25
-          @keyup.enter.native="handleQuery"
26
-        />
27
-      </el-form-item>
28
-      <el-form-item label="业主联系电话" prop="aPhone">
29
-        <el-input
30
-          v-model="queryParams.aPhone"
31
-          placeholder="请输入业主联系电话"
32
-          clearable
33
-          @keyup.enter.native="handleQuery"
34
-        />
35
-      </el-form-item>
36
-      <el-form-item label="招标代理" prop="agent">
37
-        <el-input
38
-          v-model="queryParams.agent"
39
-          placeholder="请输入招标代理"
40
-          clearable
41
-          @keyup.enter.native="handleQuery"
42
-        />
43
-      </el-form-item>
44
-      <el-form-item label="代理联系人" prop="agentPerson">
45
-        <el-input
46
-          v-model="queryParams.agentPerson"
47
-          placeholder="请输入代理联系人"
48
-          clearable
49
-          @keyup.enter.native="handleQuery"
50
-        />
51
-      </el-form-item>
52
-      <el-form-item label="代理联系电话" prop="agentPhone">
53
-        <el-input
54
-          v-model="queryParams.agentPhone"
55
-          placeholder="请输入代理联系电话"
56
-          clearable
57
-          @keyup.enter.native="handleQuery"
58
-        />
59
-      </el-form-item>
60
-      <el-form-item label="招标地点" prop="place">
61
-        <el-input
62
-          v-model="queryParams.place"
63
-          placeholder="请输入招标地点"
64
-          clearable
65
-          @keyup.enter.native="handleQuery"
66
-        />
67
-      </el-form-item>
68
-      <el-form-item label="投标部门" prop="dept">
69
-        <el-input
70
-          v-model="queryParams.dept"
71
-          placeholder="请输入投标部门"
72
-          clearable
73
-          @keyup.enter.native="handleQuery"
74
-        />
75
-      </el-form-item>
76
-      <el-form-item label="投标委托人" prop="trustee">
77
-        <el-input
78
-          v-model="queryParams.trustee"
79
-          placeholder="请输入投标委托人"
80
-          clearable
81
-          @keyup.enter.native="handleQuery"
82
-        />
83
-      </el-form-item>
84
-      <el-form-item label="业主预算" prop="budget">
85
-        <el-input
86
-          v-model="queryParams.budget"
87
-          placeholder="请输入业主预算"
88
-          clearable
89
-          @keyup.enter.native="handleQuery"
90
-        />
91
-      </el-form-item>
92
-      <el-form-item label="拟报价金额" prop="quote">
93
-        <el-input
94
-          v-model="queryParams.quote"
95
-          placeholder="请输入拟报价金额"
96
-          clearable
97
-          @keyup.enter.native="handleQuery"
98
-        />
99
-      </el-form-item>
100
-      <el-form-item label="保证金" prop="deposit">
101
-        <el-input
102
-          v-model="queryParams.deposit"
103
-          placeholder="请输入保证金"
104
-          clearable
105
-          @keyup.enter.native="handleQuery"
106
-        />
9
+        <el-input v-model="queryParams.partyA" placeholder="请输入招标业主" clearable @keyup.enter.native="handleQuery" />
107
       </el-form-item>
10
       </el-form-item>
108
       <el-form-item label="投标时间" prop="tenderTime">
11
       <el-form-item label="投标时间" prop="tenderTime">
109
-        <el-date-picker clearable
110
-          v-model="queryParams.tenderTime"
111
-          type="date"
112
-          value-format="yyyy-MM-dd"
12
+        <el-date-picker clearable v-model="queryParams.tenderTime" type="date" value-format="yyyy-MM-dd"
113
           placeholder="请选择投标时间">
13
           placeholder="请选择投标时间">
114
         </el-date-picker>
14
         </el-date-picker>
115
       </el-form-item>
15
       </el-form-item>
116
-      <el-form-item label="标书购买截止时间" prop="bidBuyDeadline">
117
-        <el-date-picker clearable
118
-          v-model="queryParams.bidBuyDeadline"
119
-          type="date"
120
-          value-format="yyyy-MM-dd"
121
-          placeholder="请选择标书购买截止时间">
122
-        </el-date-picker>
123
-      </el-form-item>
124
-      <el-form-item label="招标信息网址" prop="bidWebsite">
125
-        <el-input
126
-          v-model="queryParams.bidWebsite"
127
-          placeholder="请输入招标信息网址"
128
-          clearable
129
-          @keyup.enter.native="handleQuery"
130
-        />
131
-      </el-form-item>
132
-      <el-form-item label="招标文件" prop="bidDocument">
133
-        <el-input
134
-          v-model="queryParams.bidDocument"
135
-          placeholder="请输入招标文件"
136
-          clearable
137
-          @keyup.enter.native="handleQuery"
138
-        />
139
-      </el-form-item>
140
-      <el-form-item label="项目内容简述" prop="projectBriefly">
141
-        <el-input
142
-          v-model="queryParams.projectBriefly"
143
-          placeholder="请输入项目内容简述"
144
-          clearable
145
-          @keyup.enter.native="handleQuery"
146
-        />
147
-      </el-form-item>
148
-      <el-form-item label="商务标书编写人" prop="businessWriter">
149
-        <el-input
150
-          v-model="queryParams.businessWriter"
151
-          placeholder="请输入商务标书编写人"
152
-          clearable
153
-          @keyup.enter.native="handleQuery"
154
-        />
155
-      </el-form-item>
156
-      <el-form-item label="商务标书要求提交时间" prop="businessDeadline">
157
-        <el-date-picker clearable
158
-          v-model="queryParams.businessDeadline"
159
-          type="date"
160
-          value-format="yyyy-MM-dd"
161
-          placeholder="请选择商务标书要求提交时间">
162
-        </el-date-picker>
163
-      </el-form-item>
164
-      <el-form-item label="技术标书编写人" prop="techWriter">
165
-        <el-input
166
-          v-model="queryParams.techWriter"
167
-          placeholder="请输入技术标书编写人"
168
-          clearable
169
-          @keyup.enter.native="handleQuery"
170
-        />
171
-      </el-form-item>
172
-      <el-form-item label="技术标书要求提交时间" prop="techDeadline">
173
-        <el-date-picker clearable
174
-          v-model="queryParams.techDeadline"
175
-          type="date"
176
-          value-format="yyyy-MM-dd"
177
-          placeholder="请选择技术标书要求提交时间">
178
-        </el-date-picker>
179
-      </el-form-item>
180
-      <el-form-item label="标书合稿人" prop="tenderCombiner">
181
-        <el-input
182
-          v-model="queryParams.tenderCombiner"
183
-          placeholder="请输入标书合稿人"
184
-          clearable
185
-          @keyup.enter.native="handleQuery"
186
-        />
187
-      </el-form-item>
188
-      <el-form-item label="标书检查人" prop="tenderChecker">
189
-        <el-input
190
-          v-model="queryParams.tenderChecker"
191
-          placeholder="请输入标书检查人"
192
-          clearable
193
-          @keyup.enter.native="handleQuery"
194
-        />
195
-      </el-form-item>
196
-      <el-form-item label="标书打印装订人" prop="tenderPrinter">
197
-        <el-input
198
-          v-model="queryParams.tenderPrinter"
199
-          placeholder="请输入标书打印装订人"
200
-          clearable
201
-          @keyup.enter.native="handleQuery"
202
-        />
203
-      </el-form-item>
204
-      <el-form-item label="标书文件" prop="tenderDocument">
205
-        <el-input
206
-          v-model="queryParams.tenderDocument"
207
-          placeholder="请输入标书文件"
208
-          clearable
209
-          @keyup.enter.native="handleQuery"
210
-        />
211
-      </el-form-item>
212
       <el-form-item>
16
       <el-form-item>
213
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
17
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
214
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
18
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
217
 
21
 
218
     <el-row :gutter="10" class="mb8">
22
     <el-row :gutter="10" class="mb8">
219
       <el-col :span="1.5">
23
       <el-col :span="1.5">
220
-        <el-button
221
-          type="primary"
222
-          plain
223
-          icon="el-icon-plus"
224
-          size="mini"
225
-          @click="handleAdd"
226
-          v-hasPermi="['oa:tender:add']"
227
-        >新增</el-button>
24
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
25
+          v-hasPermi="['oa:tender:add']">新增</el-button>
228
       </el-col>
26
       </el-col>
229
       <el-col :span="1.5">
27
       <el-col :span="1.5">
230
-        <el-button
231
-          type="success"
232
-          plain
233
-          icon="el-icon-edit"
234
-          size="mini"
235
-          :disabled="single"
236
-          @click="handleUpdate"
237
-          v-hasPermi="['oa:tender:edit']"
238
-        >修改</el-button>
28
+        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
29
+          v-hasPermi="['oa:tender:edit']">修改</el-button>
239
       </el-col>
30
       </el-col>
240
       <el-col :span="1.5">
31
       <el-col :span="1.5">
241
-        <el-button
242
-          type="danger"
243
-          plain
244
-          icon="el-icon-delete"
245
-          size="mini"
246
-          :disabled="multiple"
247
-          @click="handleDelete"
248
-          v-hasPermi="['oa:tender:remove']"
249
-        >删除</el-button>
32
+        <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
33
+          v-hasPermi="['oa:tender:remove']">删除</el-button>
250
       </el-col>
34
       </el-col>
251
       <el-col :span="1.5">
35
       <el-col :span="1.5">
252
-        <el-button
253
-          type="warning"
254
-          plain
255
-          icon="el-icon-download"
256
-          size="mini"
257
-          @click="handleExport"
258
-          v-hasPermi="['oa:tender:export']"
259
-        >导出</el-button>
36
+        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
37
+          v-hasPermi="['oa:tender:export']">导出</el-button>
260
       </el-col>
38
       </el-col>
261
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
39
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
262
     </el-row>
40
     </el-row>
263
 
41
 
264
     <el-table v-loading="loading" :data="tenderList" @selection-change="handleSelectionChange">
42
     <el-table v-loading="loading" :data="tenderList" @selection-change="handleSelectionChange">
265
-      <el-table-column type="selection" width="55" align="center" />
266
-      <el-table-column label="投标id" align="center" prop="tenderId" />
267
-      <el-table-column label="投标项目名称" align="center" prop="projectName" />
268
-      <el-table-column label="招标业主" align="center" prop="partyA" />
269
-      <el-table-column label="业主联系人" align="center" prop="aPerson" />
270
-      <el-table-column label="业主联系电话" align="center" prop="aPhone" />
271
-      <el-table-column label="招标代理" align="center" prop="agent" />
272
-      <el-table-column label="代理联系人" align="center" prop="agentPerson" />
273
-      <el-table-column label="代理联系电话" align="center" prop="agentPhone" />
274
-      <el-table-column label="招标地点" align="center" prop="place" />
275
-      <el-table-column label="投标部门" align="center" prop="dept" />
276
-      <el-table-column label="投标委托人" align="center" prop="trustee" />
277
-      <el-table-column label="业主预算" align="center" prop="budget" />
278
-      <el-table-column label="拟报价金额" align="center" prop="quote" />
279
-      <el-table-column label="保证金" align="center" prop="deposit" />
43
+      <el-table-column type="selection" width="55" align="center" min-width="100px" />
44
+      <!-- <el-table-column label="投标id" align="center" prop="tenderId" min-width="100px" /> -->
45
+      <el-table-column label="投标项目名称" align="center" prop="projectName" min-width="100px" />
46
+      <el-table-column label="招标业主" align="center" prop="partyA" min-width="100px" />
47
+      <el-table-column label="业主联系人" align="center" prop="aPerson" min-width="100px" />
48
+      <el-table-column label="业主联系电话" align="center" prop="aPhone" min-width="100px" />
49
+      <el-table-column label="招标代理" align="center" prop="agent" min-width="100px" />
50
+      <el-table-column label="代理联系人" align="center" prop="agentPerson" min-width="100px" />
51
+      <el-table-column label="代理联系电话" align="center" prop="agentPhone" min-width="100px" />
52
+      <el-table-column label="招标地点" align="center" prop="place" min-width="100px" />
53
+      <el-table-column label="投标部门" align="center" prop="dept" min-width="100px" />
54
+      <el-table-column label="投标委托人" align="center" prop="trustee" min-width="100px" />
55
+      <el-table-column label="业主预算" align="center" prop="budget" min-width="100px" />
56
+      <el-table-column label="拟报价金额" align="center" prop="quote" min-width="100px" />
57
+      <el-table-column label="保证金" align="center" prop="deposit" min-width="100px" />
280
       <el-table-column label="投标时间" align="center" prop="tenderTime" width="180">
58
       <el-table-column label="投标时间" align="center" prop="tenderTime" width="180">
281
         <template slot-scope="scope">
59
         <template slot-scope="scope">
282
           <span>{{ parseTime(scope.row.tenderTime, '{y}-{m}-{d}') }}</span>
60
           <span>{{ parseTime(scope.row.tenderTime, '{y}-{m}-{d}') }}</span>
287
           <span>{{ parseTime(scope.row.bidBuyDeadline, '{y}-{m}-{d}') }}</span>
65
           <span>{{ parseTime(scope.row.bidBuyDeadline, '{y}-{m}-{d}') }}</span>
288
         </template>
66
         </template>
289
       </el-table-column>
67
       </el-table-column>
290
-      <el-table-column label="招标信息网址" align="center" prop="bidWebsite" />
291
-      <el-table-column label="招标文件" align="center" prop="bidDocument" />
292
-      <el-table-column label="项目内容简述" align="center" prop="projectBriefly" />
293
-      <el-table-column label="商务标书编写人" align="center" prop="businessWriter" />
294
-      <el-table-column label="商务标书要求提交时间" align="center" prop="businessDeadline" width="180">
295
-        <template slot-scope="scope">
296
-          <span>{{ parseTime(scope.row.businessDeadline, '{y}-{m}-{d}') }}</span>
297
-        </template>
298
-      </el-table-column>
299
-      <el-table-column label="技术标书编写人" align="center" prop="techWriter" />
300
-      <el-table-column label="技术标书要求提交时间" align="center" prop="techDeadline" width="180">
301
-        <template slot-scope="scope">
302
-          <span>{{ parseTime(scope.row.techDeadline, '{y}-{m}-{d}') }}</span>
303
-        </template>
304
-      </el-table-column>
305
-      <el-table-column label="标书合稿人" align="center" prop="tenderCombiner" />
306
-      <el-table-column label="标书检查人" align="center" prop="tenderChecker" />
307
-      <el-table-column label="标书打印装订人" align="center" prop="tenderPrinter" />
308
-      <el-table-column label="标书文件" align="center" prop="tenderDocument" />
68
+      <!-- <el-table-column label="招标信息网址" align="center" prop="bidWebsite" /> -->
69
+      <!-- <el-table-column label="招标文件" align="center" prop="bidDocument" /> -->
70
+      <!-- <el-table-column label="项目内容简述" align="center" prop="projectBriefly" /> -->
71
+      <!-- <el-table-column label="商务标书编写人" align="center" prop="businessWriter" /> -->
72
+      <!-- <el-table-column label="商务标书要求提交时间" align="center" prop="businessDeadline" width="180"> -->
73
+      <!-- <template slot-scope="scope"> -->
74
+      <!-- <span>{{ parseTime(scope.row.businessDeadline, '{y}-{m}-{d}') }}</span> -->
75
+      <!-- </template> -->
76
+      <!-- </el-table-column> -->
77
+      <!-- <el-table-column label="技术标书编写人" align="center" prop="techWriter" /> -->
78
+      <!-- <el-table-column label="技术标书要求提交时间" align="center" prop="techDeadline" width="180"> -->
79
+      <!-- <template slot-scope="scope"> -->
80
+      <!-- <span>{{ parseTime(scope.row.techDeadline, '{y}-{m}-{d}') }}</span> -->
81
+      <!-- </template> -->
82
+      <!-- </el-table-column> -->
83
+      <!-- <el-table-column label="标书合稿人" align="center" prop="tenderCombiner" /> -->
84
+      <!-- <el-table-column label="标书检查人" align="center" prop="tenderChecker" /> -->
85
+      <!-- <el-table-column label="标书打印装订人" align="center" prop="tenderPrinter" /> -->
86
+      <!-- <el-table-column label="标书文件" align="center" prop="tenderDocument" /> -->
309
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
87
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
310
         <template slot-scope="scope">
88
         <template slot-scope="scope">
311
-          <el-button
312
-            size="mini"
313
-            type="text"
314
-            icon="el-icon-edit"
315
-            @click="handleUpdate(scope.row)"
316
-            v-hasPermi="['oa:tender:edit']"
317
-          >修改</el-button>
318
-          <el-button
319
-            size="mini"
320
-            type="text"
321
-            icon="el-icon-delete"
322
-            @click="handleDelete(scope.row)"
323
-            v-hasPermi="['oa:tender:remove']"
324
-          >删除</el-button>
89
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
90
+            v-hasPermi="['oa:tender:edit']">修改</el-button>
91
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
92
+            v-hasPermi="['oa:tender:remove']">删除</el-button>
325
         </template>
93
         </template>
326
       </el-table-column>
94
       </el-table-column>
327
     </el-table>
95
     </el-table>
328
-    
329
-    <pagination
330
-      v-show="total>0"
331
-      :total="total"
332
-      :page.sync="queryParams.pageNum"
333
-      :limit.sync="queryParams.pageSize"
334
-      @pagination="getList"
335
-    />
96
+
97
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
98
+      @pagination="getList" />
336
 
99
 
337
     <!-- 添加或修改投标管理对话框 -->
100
     <!-- 添加或修改投标管理对话框 -->
338
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
339
-      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
101
+    <el-dialog :title="title" :visible.sync="open" :width="dialogProperty.dialogWidth" append-to-body :close-on-click-modal="false">
102
+      <el-descriptions class="margin-top" :column="dialogProperty.column" border>
103
+        <el-descriptions-item :span="3">
104
+          <template slot="label">
105
+            投标项目名称
106
+          </template>
107
+          <el-input v-model="form.projectName"></el-input>
108
+        </el-descriptions-item>
109
+        <el-descriptions-item>
110
+          <template slot="label">
111
+            招标业主
112
+          </template>
113
+          <el-input v-model="form.partyA"></el-input>
114
+        </el-descriptions-item>
115
+        <el-descriptions-item>
116
+          <template slot="label">
117
+            业主联系人
118
+          </template>
119
+          <el-input v-model="form.aPerson"></el-input>
120
+        </el-descriptions-item>
121
+        <el-descriptions-item>
122
+          <template slot="label">
123
+            业主联系电话
124
+          </template>
125
+          <el-input v-model="form.aPhone"></el-input>
126
+        </el-descriptions-item>
127
+        <el-descriptions-item>
128
+          <template slot="label">
129
+            招标代理
130
+          </template>
131
+          <el-input v-model="form.agent"></el-input>
132
+        </el-descriptions-item>
133
+        <el-descriptions-item>
134
+          <template slot="label">
135
+            代理联系人
136
+          </template>
137
+          <el-input v-model="form.agentPerson"></el-input>
138
+        </el-descriptions-item>
139
+        <el-descriptions-item>
140
+          <template slot="label">
141
+            代理联系电话
142
+          </template>
143
+          <el-input v-model="form.agentPhone"></el-input>
144
+        </el-descriptions-item>
145
+        <el-descriptions-item>
146
+          <template slot="label">
147
+            招标地点
148
+          </template>
149
+          <el-input v-model="form.place"></el-input>
150
+        </el-descriptions-item>
151
+        <el-descriptions-item>
152
+          <template slot="label">
153
+            投标部门
154
+          </template>
155
+          <el-input v-model="form.dept"></el-input>
156
+        </el-descriptions-item>
157
+        <el-descriptions-item>
158
+          <template slot="label">
159
+            投标委托人
160
+          </template>
161
+          <el-input v-model="form.trustee"></el-input>
162
+        </el-descriptions-item>
163
+        <el-descriptions-item>
164
+          <template slot="label">
165
+            业主预算
166
+          </template>
167
+          <el-input v-model="form.budget">
168
+            <span slot="append">元</span>
169
+          </el-input>
170
+        </el-descriptions-item>
171
+        <el-descriptions-item>
172
+          <template slot="label">
173
+            拟报价金额
174
+          </template>
175
+          <el-input v-model="form.quote">
176
+            <span slot="append">元</span>
177
+          </el-input>
178
+        </el-descriptions-item>
179
+        <el-descriptions-item>
180
+          <template slot="label">
181
+            保证金
182
+          </template>
183
+          <el-input v-model="form.deposit">
184
+            <span slot="append">元</span>
185
+          </el-input>
186
+        </el-descriptions-item>
187
+        <el-descriptions-item>
188
+          <template slot="label">
189
+            投标时间
190
+          </template>
191
+          <el-date-picker clearable v-model="form.tenderTime" type="date" value-format="yyyy-MM-dd"
192
+            placeholder="请选择投标时间">
193
+          </el-date-picker>
194
+        </el-descriptions-item>
195
+        <el-descriptions-item>
196
+          <template slot="label">
197
+            标书购买截止时间
198
+          </template>
199
+          <el-date-picker clearable v-model="form.bidBuyDeadline" type="date" value-format="yyyy-MM-dd"
200
+            placeholder="请选择标书购买截止时间">
201
+          </el-date-picker>
202
+        </el-descriptions-item>
203
+        <el-descriptions-item>
204
+          <template slot="label">
205
+            招标信息网址
206
+          </template>
207
+          <el-input v-model="form.bidWebsite"></el-input>
208
+        </el-descriptions-item>
209
+        <el-descriptions-item :span="3">
210
+          <template slot="label">
211
+            招标文件
212
+          </template>
213
+          <el-input v-model="form.bidDocument"></el-input>
214
+        </el-descriptions-item>
215
+        <el-descriptions-item :span="3">
216
+          <template slot="label">
217
+            项目内容简述
218
+          </template>
219
+          <el-input v-model="form.projectBriefly"></el-input>
220
+        </el-descriptions-item>
221
+        <el-descriptions-item>
222
+          <template slot="label">
223
+            商务标书编写人
224
+          </template>
225
+          <el-input v-model="form.businessWriter"></el-input>
226
+        </el-descriptions-item>
227
+        <el-descriptions-item>
228
+          <template slot="label">
229
+            商务标书要求提交时间
230
+          </template>
231
+          <el-date-picker clearable v-model="form.businessDeadline" type="date" value-format="yyyy-MM-dd"
232
+            placeholder="请选择商务标书要求提交时间">
233
+          </el-date-picker>
234
+        </el-descriptions-item>
235
+        <el-descriptions-item>
236
+          <template slot="label">
237
+            技术标书编写人
238
+          </template>
239
+          <el-input v-model="form.techWriter"></el-input>
240
+        </el-descriptions-item>
241
+        <el-descriptions-item>
242
+          <template slot="label">
243
+            技术标书要求提交时间
244
+          </template>
245
+          <el-date-picker clearable v-model="form.techDeadline" type="date" value-format="yyyy-MM-dd"
246
+            placeholder="请选择技术标书要求提交时间">
247
+          </el-date-picker>
248
+        </el-descriptions-item>
249
+        <el-descriptions-item>
250
+          <template slot="label">
251
+            标书合稿人
252
+          </template>
253
+          <el-input v-model="form.tenderCombiner"></el-input>
254
+        </el-descriptions-item>
255
+        <el-descriptions-item>
256
+          <template slot="label">
257
+            标书检查人
258
+          </template>
259
+          <el-input v-model="form.tenderChecker"></el-input>
260
+        </el-descriptions-item>
261
+        <el-descriptions-item>
262
+          <template slot="label">
263
+            标书打印装订人
264
+          </template>
265
+          <el-input v-model="form.tenderPrinter"></el-input>
266
+        </el-descriptions-item>
267
+        <el-descriptions-item>
268
+          <template slot="label">
269
+            标书文件
270
+          </template>
271
+          <el-input v-model="form.tenderDocument"></el-input>
272
+        </el-descriptions-item>
273
+      </el-descriptions>
274
+
275
+      <!-- <el-form ref="form" :model="form" :rules="rules" label-width="160px" style="padding-right: 50px;">
340
         <el-form-item label="投标项目名称" prop="projectName">
276
         <el-form-item label="投标项目名称" prop="projectName">
341
           <el-input v-model="form.projectName" placeholder="请输入投标项目名称" />
277
           <el-input v-model="form.projectName" placeholder="请输入投标项目名称" />
342
         </el-form-item>
278
         </el-form-item>
435
         <el-form-item label="标书文件" prop="tenderDocument">
371
         <el-form-item label="标书文件" prop="tenderDocument">
436
           <el-input v-model="form.tenderDocument" placeholder="请输入标书文件" />
372
           <el-input v-model="form.tenderDocument" placeholder="请输入标书文件" />
437
         </el-form-item>
373
         </el-form-item>
438
-      </el-form>
439
-      <div slot="footer" class="dialog-footer">
374
+      </el-form> -->
375
+      <div slot="footer" class="dialog-footer" style="text-align: center;">
440
         <el-button type="primary" @click="submitForm">确 定</el-button>
376
         <el-button type="primary" @click="submitForm">确 定</el-button>
441
         <el-button @click="cancel">取 消</el-button>
377
         <el-button @click="cancel">取 消</el-button>
442
       </div>
378
       </div>
469
       title: "",
405
       title: "",
470
       // 是否显示弹出层
406
       // 是否显示弹出层
471
       open: false,
407
       open: false,
408
+      // 对话框属性
409
+      dialogProperty: {
410
+        dialogWidth: '1200px',
411
+        column: 3,
412
+      },
472
       // 查询参数
413
       // 查询参数
473
       queryParams: {
414
       queryParams: {
474
         pageNum: 1,
415
         pageNum: 1,
509
   },
450
   },
510
   created() {
451
   created() {
511
     this.getList();
452
     this.getList();
453
+    console.log(this.$store.state.app.device);
454
+    if (this.$store.state.app.device == 'mobile') {
455
+      this.dialogProperty.column = 1
456
+      this.dialogProperty.dialogWidth = '90%'
457
+    }
512
   },
458
   },
513
   methods: {
459
   methods: {
514
     /** 查询投标管理列表 */
460
     /** 查询投标管理列表 */
571
     // 多选框选中数据
517
     // 多选框选中数据
572
     handleSelectionChange(selection) {
518
     handleSelectionChange(selection) {
573
       this.ids = selection.map(item => item.tenderId)
519
       this.ids = selection.map(item => item.tenderId)
574
-      this.single = selection.length!==1
520
+      this.single = selection.length !== 1
575
       this.multiple = !selection.length
521
       this.multiple = !selection.length
576
     },
522
     },
577
     /** 新增按钮操作 */
523
     /** 新增按钮操作 */
578
     handleAdd() {
524
     handleAdd() {
579
       this.reset();
525
       this.reset();
580
       this.open = true;
526
       this.open = true;
581
-      this.title = "添加投标管理";
527
+      this.title = "添加投标信息";
582
     },
528
     },
583
     /** 修改按钮操作 */
529
     /** 修改按钮操作 */
584
     handleUpdate(row) {
530
     handleUpdate(row) {
587
       getTender(tenderId).then(response => {
533
       getTender(tenderId).then(response => {
588
         this.form = response.data;
534
         this.form = response.data;
589
         this.open = true;
535
         this.open = true;
590
-        this.title = "修改投标管理";
536
+        this.title = "修改投标信息";
591
       });
537
       });
592
     },
538
     },
593
     /** 提交按钮 */
539
     /** 提交按钮 */
613
     /** 删除按钮操作 */
559
     /** 删除按钮操作 */
614
     handleDelete(row) {
560
     handleDelete(row) {
615
       const tenderIds = row.tenderId || this.ids;
561
       const tenderIds = row.tenderId || this.ids;
616
-      this.$modal.confirm('是否确认删除投标管理编号为"' + tenderIds + '"的数据项?').then(function() {
562
+      this.$modal.confirm('是否确认删除投标管理编号为"' + tenderIds + '"的数据项?').then(function () {
617
         return delTender(tenderIds);
563
         return delTender(tenderIds);
618
       }).then(() => {
564
       }).then(() => {
619
         this.getList();
565
         this.getList();
620
         this.$modal.msgSuccess("删除成功");
566
         this.$modal.msgSuccess("删除成功");
621
-      }).catch(() => {});
567
+      }).catch(() => { });
622
     },
568
     },
623
     /** 导出按钮操作 */
569
     /** 导出按钮操作 */
624
     handleExport() {
570
     handleExport() {
629
   }
575
   }
630
 };
576
 };
631
 </script>
577
 </script>
578
+<style lang="scss" scoped>
579
+::v-deep .el-descriptions-item__label.is-bordered-label {
580
+  color: #121212;
581
+  // background: rgba($color: #46a6ff, $alpha: 0.1);
582
+  width: 120px;
583
+  text-align: center;
584
+}
585
+
586
+::v-deep .el-descriptions .is-bordered .el-descriptions-item__cell {
587
+  border: 1px solid #2d3f62;
588
+}
589
+
590
+::v-deep .el-form-item--medium .el-form-item__label {
591
+  font-weight: 500;
592
+}
593
+</style>

Loading…
Cancelar
Guardar