lamphua 1年前
コミット
2723547da0

+ 104
- 0
oa-back/ruoyi-admin/src/main/java/com/ruoyi/web/controller/oa/CmcTenderController.java ファイルの表示

@@ -0,0 +1,104 @@
1
+package com.ruoyi.oa.controller;
2
+
3
+import java.util.List;
4
+import javax.servlet.http.HttpServletResponse;
5
+import org.springframework.security.access.prepost.PreAuthorize;
6
+import org.springframework.beans.factory.annotation.Autowired;
7
+import org.springframework.web.bind.annotation.GetMapping;
8
+import org.springframework.web.bind.annotation.PostMapping;
9
+import org.springframework.web.bind.annotation.PutMapping;
10
+import org.springframework.web.bind.annotation.DeleteMapping;
11
+import org.springframework.web.bind.annotation.PathVariable;
12
+import org.springframework.web.bind.annotation.RequestBody;
13
+import org.springframework.web.bind.annotation.RequestMapping;
14
+import org.springframework.web.bind.annotation.RestController;
15
+import com.ruoyi.common.annotation.Log;
16
+import com.ruoyi.common.core.controller.BaseController;
17
+import com.ruoyi.common.core.domain.AjaxResult;
18
+import com.ruoyi.common.enums.BusinessType;
19
+import com.ruoyi.oa.domain.CmcTender;
20
+import com.ruoyi.oa.service.ICmcTenderService;
21
+import com.ruoyi.common.utils.poi.ExcelUtil;
22
+import com.ruoyi.common.core.page.TableDataInfo;
23
+
24
+/**
25
+ * 投标管理Controller
26
+ * 
27
+ * @author cmc
28
+ * @date 2024-03-14
29
+ */
30
+@RestController
31
+@RequestMapping("/oa/tender")
32
+public class CmcTenderController extends BaseController
33
+{
34
+    @Autowired
35
+    private ICmcTenderService cmcTenderService;
36
+
37
+    /**
38
+     * 查询投标管理列表
39
+     */
40
+    @PreAuthorize("@ss.hasPermi('oa:tender:list')")
41
+    @GetMapping("/list")
42
+    public TableDataInfo list(CmcTender cmcTender)
43
+    {
44
+        startPage();
45
+        List<CmcTender> list = cmcTenderService.selectCmcTenderList(cmcTender);
46
+        return getDataTable(list);
47
+    }
48
+
49
+    /**
50
+     * 导出投标管理列表
51
+     */
52
+    @PreAuthorize("@ss.hasPermi('oa:tender:export')")
53
+    @Log(title = "投标管理", businessType = BusinessType.EXPORT)
54
+    @PostMapping("/export")
55
+    public void export(HttpServletResponse response, CmcTender cmcTender)
56
+    {
57
+        List<CmcTender> list = cmcTenderService.selectCmcTenderList(cmcTender);
58
+        ExcelUtil<CmcTender> util = new ExcelUtil<CmcTender>(CmcTender.class);
59
+        util.exportExcel(response, list, "投标管理数据");
60
+    }
61
+
62
+    /**
63
+     * 获取投标管理详细信息
64
+     */
65
+    @PreAuthorize("@ss.hasPermi('oa:tender:query')")
66
+    @GetMapping(value = "/{tenderId}")
67
+    public AjaxResult getInfo(@PathVariable("tenderId") String tenderId)
68
+    {
69
+        return success(cmcTenderService.selectCmcTenderByTenderId(tenderId));
70
+    }
71
+
72
+    /**
73
+     * 新增投标管理
74
+     */
75
+    @PreAuthorize("@ss.hasPermi('oa:tender:add')")
76
+    @Log(title = "投标管理", businessType = BusinessType.INSERT)
77
+    @PostMapping
78
+    public AjaxResult add(@RequestBody CmcTender cmcTender)
79
+    {
80
+        return toAjax(cmcTenderService.insertCmcTender(cmcTender));
81
+    }
82
+
83
+    /**
84
+     * 修改投标管理
85
+     */
86
+    @PreAuthorize("@ss.hasPermi('oa:tender:edit')")
87
+    @Log(title = "投标管理", businessType = BusinessType.UPDATE)
88
+    @PutMapping
89
+    public AjaxResult edit(@RequestBody CmcTender cmcTender)
90
+    {
91
+        return toAjax(cmcTenderService.updateCmcTender(cmcTender));
92
+    }
93
+
94
+    /**
95
+     * 删除投标管理
96
+     */
97
+    @PreAuthorize("@ss.hasPermi('oa:tender:remove')")
98
+    @Log(title = "投标管理", businessType = BusinessType.DELETE)
99
+	@DeleteMapping("/{tenderIds}")
100
+    public AjaxResult remove(@PathVariable String[] tenderIds)
101
+    {
102
+        return toAjax(cmcTenderService.deleteCmcTenderByTenderIds(tenderIds));
103
+    }
104
+}

+ 408
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/domain/CmcTender.java ファイルの表示

@@ -0,0 +1,408 @@
1
+package com.ruoyi.oa.domain;
2
+
3
+import java.math.BigDecimal;
4
+import java.util.Date;
5
+import com.fasterxml.jackson.annotation.JsonFormat;
6
+import org.apache.commons.lang3.builder.ToStringBuilder;
7
+import org.apache.commons.lang3.builder.ToStringStyle;
8
+import com.ruoyi.common.annotation.Excel;
9
+import com.ruoyi.common.core.domain.BaseEntity;
10
+
11
+/**
12
+ * 投标管理对象 cmc_tender
13
+ * 
14
+ * @author cmc
15
+ * @date 2024-03-14
16
+ */
17
+public class CmcTender extends BaseEntity
18
+{
19
+    private static final long serialVersionUID = 1L;
20
+
21
+    /** 投标id(2024-001) */
22
+    private String tenderId;
23
+
24
+    /** 投标项目名称 */
25
+    @Excel(name = "投标项目名称")
26
+    private String projectName;
27
+
28
+    /** 招标业主 */
29
+    @Excel(name = "招标业主")
30
+    private String partyA;
31
+
32
+    /** 业主联系人 */
33
+    @Excel(name = "业主联系人")
34
+    private String aPerson;
35
+
36
+    /** 业主联系电话 */
37
+    @Excel(name = "业主联系电话")
38
+    private String aPhone;
39
+
40
+    /** 招标代理 */
41
+    @Excel(name = "招标代理")
42
+    private String agent;
43
+
44
+    /** 代理联系人 */
45
+    @Excel(name = "代理联系人")
46
+    private String agentPerson;
47
+
48
+    /** 代理联系电话 */
49
+    @Excel(name = "代理联系电话")
50
+    private String agentPhone;
51
+
52
+    /** 招标地点 */
53
+    @Excel(name = "招标地点")
54
+    private String place;
55
+
56
+    /** 投标部门 */
57
+    @Excel(name = "投标部门")
58
+    private Long dept;
59
+
60
+    /** 投标委托人 */
61
+    @Excel(name = "投标委托人")
62
+    private Long trustee;
63
+
64
+    /** 业主预算 */
65
+    @Excel(name = "业主预算")
66
+    private BigDecimal budget;
67
+
68
+    /** 拟报价金额 */
69
+    @Excel(name = "拟报价金额")
70
+    private BigDecimal quote;
71
+
72
+    /** 保证金 */
73
+    @Excel(name = "保证金")
74
+    private BigDecimal deposit;
75
+
76
+    /** 投标时间 */
77
+    @JsonFormat(pattern = "yyyy-MM-dd")
78
+    @Excel(name = "投标时间", width = 30, dateFormat = "yyyy-MM-dd")
79
+    private Date tenderTime;
80
+
81
+    /** 标书购买截止时间 */
82
+    @JsonFormat(pattern = "yyyy-MM-dd")
83
+    @Excel(name = "标书购买截止时间", width = 30, dateFormat = "yyyy-MM-dd")
84
+    private Date bidBuyDeadline;
85
+
86
+    /** 招标信息网址 */
87
+    @Excel(name = "招标信息网址")
88
+    private String bidWebsite;
89
+
90
+    /** 招标文件 */
91
+    @Excel(name = "招标文件")
92
+    private String bidDocument;
93
+
94
+    /** 项目内容简述 */
95
+    @Excel(name = "项目内容简述")
96
+    private String projectBriefly;
97
+
98
+    /** 商务标书编写人 */
99
+    @Excel(name = "商务标书编写人")
100
+    private Long businessWriter;
101
+
102
+    /** 商务标书要求提交时间 */
103
+    @JsonFormat(pattern = "yyyy-MM-dd")
104
+    @Excel(name = "商务标书要求提交时间", width = 30, dateFormat = "yyyy-MM-dd")
105
+    private Date businessDeadline;
106
+
107
+    /** 技术标书编写人 */
108
+    @Excel(name = "技术标书编写人")
109
+    private Long techWriter;
110
+
111
+    /** 技术标书要求提交时间 */
112
+    @JsonFormat(pattern = "yyyy-MM-dd")
113
+    @Excel(name = "技术标书要求提交时间", width = 30, dateFormat = "yyyy-MM-dd")
114
+    private Date techDeadline;
115
+
116
+    /** 标书合稿人 */
117
+    @Excel(name = "标书合稿人")
118
+    private Long tenderCombiner;
119
+
120
+    /** 标书检查人 */
121
+    @Excel(name = "标书检查人")
122
+    private Long tenderChecker;
123
+
124
+    /** 标书打印装订人 */
125
+    @Excel(name = "标书打印装订人")
126
+    private Long tenderPrinter;
127
+
128
+    /** 标书文件 */
129
+    @Excel(name = "标书文件")
130
+    private String tenderDocument;
131
+
132
+    public void setTenderId(String tenderId) 
133
+    {
134
+        this.tenderId = tenderId;
135
+    }
136
+
137
+    public String getTenderId() 
138
+    {
139
+        return tenderId;
140
+    }
141
+    public void setProjectName(String projectName) 
142
+    {
143
+        this.projectName = projectName;
144
+    }
145
+
146
+    public String getProjectName() 
147
+    {
148
+        return projectName;
149
+    }
150
+    public void setPartyA(String partyA) 
151
+    {
152
+        this.partyA = partyA;
153
+    }
154
+
155
+    public String getPartyA() 
156
+    {
157
+        return partyA;
158
+    }
159
+    public void setaPerson(String aPerson) 
160
+    {
161
+        this.aPerson = aPerson;
162
+    }
163
+
164
+    public String getaPerson() 
165
+    {
166
+        return aPerson;
167
+    }
168
+    public void setaPhone(String aPhone) 
169
+    {
170
+        this.aPhone = aPhone;
171
+    }
172
+
173
+    public String getaPhone() 
174
+    {
175
+        return aPhone;
176
+    }
177
+    public void setAgent(String agent) 
178
+    {
179
+        this.agent = agent;
180
+    }
181
+
182
+    public String getAgent() 
183
+    {
184
+        return agent;
185
+    }
186
+    public void setAgentPerson(String agentPerson) 
187
+    {
188
+        this.agentPerson = agentPerson;
189
+    }
190
+
191
+    public String getAgentPerson() 
192
+    {
193
+        return agentPerson;
194
+    }
195
+    public void setAgentPhone(String agentPhone) 
196
+    {
197
+        this.agentPhone = agentPhone;
198
+    }
199
+
200
+    public String getAgentPhone() 
201
+    {
202
+        return agentPhone;
203
+    }
204
+    public void setPlace(String place) 
205
+    {
206
+        this.place = place;
207
+    }
208
+
209
+    public String getPlace() 
210
+    {
211
+        return place;
212
+    }
213
+    public void setDept(Long dept) 
214
+    {
215
+        this.dept = dept;
216
+    }
217
+
218
+    public Long getDept() 
219
+    {
220
+        return dept;
221
+    }
222
+    public void setTrustee(Long trustee) 
223
+    {
224
+        this.trustee = trustee;
225
+    }
226
+
227
+    public Long getTrustee() 
228
+    {
229
+        return trustee;
230
+    }
231
+    public void setBudget(BigDecimal budget) 
232
+    {
233
+        this.budget = budget;
234
+    }
235
+
236
+    public BigDecimal getBudget() 
237
+    {
238
+        return budget;
239
+    }
240
+    public void setQuote(BigDecimal quote) 
241
+    {
242
+        this.quote = quote;
243
+    }
244
+
245
+    public BigDecimal getQuote() 
246
+    {
247
+        return quote;
248
+    }
249
+    public void setDeposit(BigDecimal deposit) 
250
+    {
251
+        this.deposit = deposit;
252
+    }
253
+
254
+    public BigDecimal getDeposit() 
255
+    {
256
+        return deposit;
257
+    }
258
+    public void setTenderTime(Date tenderTime) 
259
+    {
260
+        this.tenderTime = tenderTime;
261
+    }
262
+
263
+    public Date getTenderTime() 
264
+    {
265
+        return tenderTime;
266
+    }
267
+    public void setBidBuyDeadline(Date bidBuyDeadline) 
268
+    {
269
+        this.bidBuyDeadline = bidBuyDeadline;
270
+    }
271
+
272
+    public Date getBidBuyDeadline() 
273
+    {
274
+        return bidBuyDeadline;
275
+    }
276
+    public void setBidWebsite(String bidWebsite) 
277
+    {
278
+        this.bidWebsite = bidWebsite;
279
+    }
280
+
281
+    public String getBidWebsite() 
282
+    {
283
+        return bidWebsite;
284
+    }
285
+    public void setBidDocument(String bidDocument) 
286
+    {
287
+        this.bidDocument = bidDocument;
288
+    }
289
+
290
+    public String getBidDocument() 
291
+    {
292
+        return bidDocument;
293
+    }
294
+    public void setProjectBriefly(String projectBriefly) 
295
+    {
296
+        this.projectBriefly = projectBriefly;
297
+    }
298
+
299
+    public String getProjectBriefly() 
300
+    {
301
+        return projectBriefly;
302
+    }
303
+    public void setBusinessWriter(Long businessWriter) 
304
+    {
305
+        this.businessWriter = businessWriter;
306
+    }
307
+
308
+    public Long getBusinessWriter() 
309
+    {
310
+        return businessWriter;
311
+    }
312
+    public void setBusinessDeadline(Date businessDeadline) 
313
+    {
314
+        this.businessDeadline = businessDeadline;
315
+    }
316
+
317
+    public Date getBusinessDeadline() 
318
+    {
319
+        return businessDeadline;
320
+    }
321
+    public void setTechWriter(Long techWriter) 
322
+    {
323
+        this.techWriter = techWriter;
324
+    }
325
+
326
+    public Long getTechWriter() 
327
+    {
328
+        return techWriter;
329
+    }
330
+    public void setTechDeadline(Date techDeadline) 
331
+    {
332
+        this.techDeadline = techDeadline;
333
+    }
334
+
335
+    public Date getTechDeadline() 
336
+    {
337
+        return techDeadline;
338
+    }
339
+    public void setTenderCombiner(Long tenderCombiner) 
340
+    {
341
+        this.tenderCombiner = tenderCombiner;
342
+    }
343
+
344
+    public Long getTenderCombiner() 
345
+    {
346
+        return tenderCombiner;
347
+    }
348
+    public void setTenderChecker(Long tenderChecker) 
349
+    {
350
+        this.tenderChecker = tenderChecker;
351
+    }
352
+
353
+    public Long getTenderChecker() 
354
+    {
355
+        return tenderChecker;
356
+    }
357
+    public void setTenderPrinter(Long tenderPrinter) 
358
+    {
359
+        this.tenderPrinter = tenderPrinter;
360
+    }
361
+
362
+    public Long getTenderPrinter() 
363
+    {
364
+        return tenderPrinter;
365
+    }
366
+    public void setTenderDocument(String tenderDocument) 
367
+    {
368
+        this.tenderDocument = tenderDocument;
369
+    }
370
+
371
+    public String getTenderDocument() 
372
+    {
373
+        return tenderDocument;
374
+    }
375
+
376
+    @Override
377
+    public String toString() {
378
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
379
+            .append("tenderId", getTenderId())
380
+            .append("projectName", getProjectName())
381
+            .append("partyA", getPartyA())
382
+            .append("aPerson", getaPerson())
383
+            .append("aPhone", getaPhone())
384
+            .append("agent", getAgent())
385
+            .append("agentPerson", getAgentPerson())
386
+            .append("agentPhone", getAgentPhone())
387
+            .append("place", getPlace())
388
+            .append("dept", getDept())
389
+            .append("trustee", getTrustee())
390
+            .append("budget", getBudget())
391
+            .append("quote", getQuote())
392
+            .append("deposit", getDeposit())
393
+            .append("tenderTime", getTenderTime())
394
+            .append("bidBuyDeadline", getBidBuyDeadline())
395
+            .append("bidWebsite", getBidWebsite())
396
+            .append("bidDocument", getBidDocument())
397
+            .append("projectBriefly", getProjectBriefly())
398
+            .append("businessWriter", getBusinessWriter())
399
+            .append("businessDeadline", getBusinessDeadline())
400
+            .append("techWriter", getTechWriter())
401
+            .append("techDeadline", getTechDeadline())
402
+            .append("tenderCombiner", getTenderCombiner())
403
+            .append("tenderChecker", getTenderChecker())
404
+            .append("tenderPrinter", getTenderPrinter())
405
+            .append("tenderDocument", getTenderDocument())
406
+            .toString();
407
+    }
408
+}

+ 61
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/mapper/CmcTenderMapper.java ファイルの表示

@@ -0,0 +1,61 @@
1
+package com.ruoyi.oa.mapper;
2
+
3
+import java.util.List;
4
+import com.ruoyi.oa.domain.CmcTender;
5
+
6
+/**
7
+ * 投标管理Mapper接口
8
+ * 
9
+ * @author cmc
10
+ * @date 2024-03-14
11
+ */
12
+public interface CmcTenderMapper 
13
+{
14
+    /**
15
+     * 查询投标管理
16
+     * 
17
+     * @param tenderId 投标管理主键
18
+     * @return 投标管理
19
+     */
20
+    public CmcTender selectCmcTenderByTenderId(String tenderId);
21
+
22
+    /**
23
+     * 查询投标管理列表
24
+     * 
25
+     * @param cmcTender 投标管理
26
+     * @return 投标管理集合
27
+     */
28
+    public List<CmcTender> selectCmcTenderList(CmcTender cmcTender);
29
+
30
+    /**
31
+     * 新增投标管理
32
+     * 
33
+     * @param cmcTender 投标管理
34
+     * @return 结果
35
+     */
36
+    public int insertCmcTender(CmcTender cmcTender);
37
+
38
+    /**
39
+     * 修改投标管理
40
+     * 
41
+     * @param cmcTender 投标管理
42
+     * @return 结果
43
+     */
44
+    public int updateCmcTender(CmcTender cmcTender);
45
+
46
+    /**
47
+     * 删除投标管理
48
+     * 
49
+     * @param tenderId 投标管理主键
50
+     * @return 结果
51
+     */
52
+    public int deleteCmcTenderByTenderId(String tenderId);
53
+
54
+    /**
55
+     * 批量删除投标管理
56
+     * 
57
+     * @param tenderIds 需要删除的数据主键集合
58
+     * @return 结果
59
+     */
60
+    public int deleteCmcTenderByTenderIds(String[] tenderIds);
61
+}

+ 61
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/ICmcTenderService.java ファイルの表示

@@ -0,0 +1,61 @@
1
+package com.ruoyi.oa.service;
2
+
3
+import java.util.List;
4
+import com.ruoyi.oa.domain.CmcTender;
5
+
6
+/**
7
+ * 投标管理Service接口
8
+ * 
9
+ * @author cmc
10
+ * @date 2024-03-14
11
+ */
12
+public interface ICmcTenderService 
13
+{
14
+    /**
15
+     * 查询投标管理
16
+     * 
17
+     * @param tenderId 投标管理主键
18
+     * @return 投标管理
19
+     */
20
+    public CmcTender selectCmcTenderByTenderId(String tenderId);
21
+
22
+    /**
23
+     * 查询投标管理列表
24
+     * 
25
+     * @param cmcTender 投标管理
26
+     * @return 投标管理集合
27
+     */
28
+    public List<CmcTender> selectCmcTenderList(CmcTender cmcTender);
29
+
30
+    /**
31
+     * 新增投标管理
32
+     * 
33
+     * @param cmcTender 投标管理
34
+     * @return 结果
35
+     */
36
+    public int insertCmcTender(CmcTender cmcTender);
37
+
38
+    /**
39
+     * 修改投标管理
40
+     * 
41
+     * @param cmcTender 投标管理
42
+     * @return 结果
43
+     */
44
+    public int updateCmcTender(CmcTender cmcTender);
45
+
46
+    /**
47
+     * 批量删除投标管理
48
+     * 
49
+     * @param tenderIds 需要删除的投标管理主键集合
50
+     * @return 结果
51
+     */
52
+    public int deleteCmcTenderByTenderIds(String[] tenderIds);
53
+
54
+    /**
55
+     * 删除投标管理信息
56
+     * 
57
+     * @param tenderId 投标管理主键
58
+     * @return 结果
59
+     */
60
+    public int deleteCmcTenderByTenderId(String tenderId);
61
+}

+ 93
- 0
oa-back/ruoyi-system/src/main/java/com/ruoyi/oa/service/impl/CmcTenderServiceImpl.java ファイルの表示

@@ -0,0 +1,93 @@
1
+package com.ruoyi.oa.service.impl;
2
+
3
+import java.util.List;
4
+import org.springframework.beans.factory.annotation.Autowired;
5
+import org.springframework.stereotype.Service;
6
+import com.ruoyi.oa.mapper.CmcTenderMapper;
7
+import com.ruoyi.oa.domain.CmcTender;
8
+import com.ruoyi.oa.service.ICmcTenderService;
9
+
10
+/**
11
+ * 投标管理Service业务层处理
12
+ * 
13
+ * @author cmc
14
+ * @date 2024-03-14
15
+ */
16
+@Service
17
+public class CmcTenderServiceImpl implements ICmcTenderService 
18
+{
19
+    @Autowired
20
+    private CmcTenderMapper cmcTenderMapper;
21
+
22
+    /**
23
+     * 查询投标管理
24
+     * 
25
+     * @param tenderId 投标管理主键
26
+     * @return 投标管理
27
+     */
28
+    @Override
29
+    public CmcTender selectCmcTenderByTenderId(String tenderId)
30
+    {
31
+        return cmcTenderMapper.selectCmcTenderByTenderId(tenderId);
32
+    }
33
+
34
+    /**
35
+     * 查询投标管理列表
36
+     * 
37
+     * @param cmcTender 投标管理
38
+     * @return 投标管理
39
+     */
40
+    @Override
41
+    public List<CmcTender> selectCmcTenderList(CmcTender cmcTender)
42
+    {
43
+        return cmcTenderMapper.selectCmcTenderList(cmcTender);
44
+    }
45
+
46
+    /**
47
+     * 新增投标管理
48
+     * 
49
+     * @param cmcTender 投标管理
50
+     * @return 结果
51
+     */
52
+    @Override
53
+    public int insertCmcTender(CmcTender cmcTender)
54
+    {
55
+        return cmcTenderMapper.insertCmcTender(cmcTender);
56
+    }
57
+
58
+    /**
59
+     * 修改投标管理
60
+     * 
61
+     * @param cmcTender 投标管理
62
+     * @return 结果
63
+     */
64
+    @Override
65
+    public int updateCmcTender(CmcTender cmcTender)
66
+    {
67
+        return cmcTenderMapper.updateCmcTender(cmcTender);
68
+    }
69
+
70
+    /**
71
+     * 批量删除投标管理
72
+     * 
73
+     * @param tenderIds 需要删除的投标管理主键
74
+     * @return 结果
75
+     */
76
+    @Override
77
+    public int deleteCmcTenderByTenderIds(String[] tenderIds)
78
+    {
79
+        return cmcTenderMapper.deleteCmcTenderByTenderIds(tenderIds);
80
+    }
81
+
82
+    /**
83
+     * 删除投标管理信息
84
+     * 
85
+     * @param tenderId 投标管理主键
86
+     * @return 结果
87
+     */
88
+    @Override
89
+    public int deleteCmcTenderByTenderId(String tenderId)
90
+    {
91
+        return cmcTenderMapper.deleteCmcTenderByTenderId(tenderId);
92
+    }
93
+}

+ 4
- 4
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcDeviceMapper.xml ファイルの表示

@@ -32,14 +32,14 @@
32 32
         <where>
33 33
             <if test="code != null  and code != ''"> and code = #{code}</if>
34 34
             <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
35
-            <if test="type != null  and type != ''"> and type = #{type}</if>
35
+            <if test="type != null  and type != ''"> and type like concat('%', #{type}, '%')</if>
36 36
             <if test="acquisitionTime != null "> and acquisition_time = #{acquisitionTime}</if>
37 37
             <if test="cost != null "> and cost = #{cost}</if>
38 38
             <if test="expectLife != null "> and expect_life = #{expectLife}</if>
39
-            <if test="series != null  and series != ''"> and series = #{series}</if>
40
-            <if test="brand != null  and brand != ''"> and brand = #{brand}</if>
39
+            <if test="series != null  and series != ''"> and series like concat('%', #{series}, '%')</if>
40
+            <if test="brand != null  and brand != ''"> and brand like concat('%', #{brand}, '%')</if>
41 41
             <if test="dayCost != null "> and day_cost = #{dayCost}</if>
42
-            <if test="place != null  and place != ''"> and place = #{place}</if>
42
+            <if test="place != null  and place != ''"> and place like concat('%', #{place}, '%')</if>
43 43
             <if test="checkTerm != null "> and check_term = #{checkTerm}</if>
44 44
             <if test="checkTime != null "> and check_time = #{checkTime}</if>
45 45
             <if test="warranty != null "> and warranty = #{warranty}</if>

+ 183
- 0
oa-back/ruoyi-system/src/main/resources/mapper/oa/CmcTenderMapper.xml ファイルの表示

@@ -0,0 +1,183 @@
1
+<?xml version="1.0" encoding="UTF-8" ?>
2
+<!DOCTYPE mapper
3
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
4
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
5
+<mapper namespace="com.ruoyi.oa.mapper.CmcTenderMapper">
6
+    
7
+    <resultMap type="CmcTender" id="CmcTenderResult">
8
+        <result property="tenderId"    column="tender_id"    />
9
+        <result property="projectName"    column="project_name"    />
10
+        <result property="partyA"    column="party_a"    />
11
+        <result property="aPerson"    column="a_person"    />
12
+        <result property="aPhone"    column="a_phone"    />
13
+        <result property="agent"    column="agent"    />
14
+        <result property="agentPerson"    column="agent_person"    />
15
+        <result property="agentPhone"    column="agent_phone"    />
16
+        <result property="place"    column="place"    />
17
+        <result property="dept"    column="dept"    />
18
+        <result property="trustee"    column="trustee"    />
19
+        <result property="budget"    column="budget"    />
20
+        <result property="quote"    column="quote"    />
21
+        <result property="deposit"    column="deposit"    />
22
+        <result property="tenderTime"    column="tender_time"    />
23
+        <result property="bidBuyDeadline"    column="bid_buy_deadline"    />
24
+        <result property="bidWebsite"    column="bid_website"    />
25
+        <result property="bidDocument"    column="bid_document"    />
26
+        <result property="projectBriefly"    column="project_briefly"    />
27
+        <result property="businessWriter"    column="business_writer"    />
28
+        <result property="businessDeadline"    column="business_deadline"    />
29
+        <result property="techWriter"    column="tech_writer"    />
30
+        <result property="techDeadline"    column="tech_deadline"    />
31
+        <result property="tenderCombiner"    column="tender_combiner"    />
32
+        <result property="tenderChecker"    column="tender_checker"    />
33
+        <result property="tenderPrinter"    column="tender_printer"    />
34
+        <result property="tenderDocument"    column="tender_document"    />
35
+    </resultMap>
36
+
37
+    <sql id="selectCmcTenderVo">
38
+        select tender_id, project_name, party_a, a_person, a_phone, agent, agent_person, agent_phone, place, dept, trustee, budget, quote, deposit, tender_time, bid_buy_deadline, bid_website, bid_document, project_briefly, business_writer, business_deadline, tech_writer, tech_deadline, tender_combiner, tender_checker, tender_printer, tender_document from cmc_tender
39
+    </sql>
40
+
41
+    <select id="selectCmcTenderList" parameterType="CmcTender" resultMap="CmcTenderResult">
42
+        <include refid="selectCmcTenderVo"/>
43
+        <where>  
44
+            <if test="projectName != null  and projectName != ''"> and project_name like concat('%', #{projectName}, '%')</if>
45
+            <if test="partyA != null  and partyA != ''"> and party_a like concat('%', #{partyA}, '%')</if>
46
+            <if test="aPerson != null  and aPerson != ''"> and a_person like concat('%', #{aPerson}, '%')</if>
47
+            <if test="aPhone != null  and aPhone != ''"> and a_phone like concat('%', #{aPhone}, '%')</if>
48
+            <if test="agent != null  and agent != ''"> and agent like concat('%', #{agent}, '%')</if>
49
+            <if test="agentPerson != null  and agentPerson != ''"> and agent_person like concat('%', #{agentPerson}, '%')</if>
50
+            <if test="agentPhone != null  and agentPhone != ''"> and agent_phone like concat('%', #{agentPhone}, '%')</if>
51
+            <if test="place != null  and place != ''"> and place like concat('%', #{place}, '%')</if>
52
+            <if test="dept != null "> and dept = #{dept}</if>
53
+            <if test="trustee != null "> and trustee = #{trustee}</if>
54
+            <if test="budget != null "> and budget = #{budget}</if>
55
+            <if test="quote != null "> and quote = #{quote}</if>
56
+            <if test="deposit != null "> and deposit = #{deposit}</if>
57
+            <if test="tenderTime != null "> and tender_time = #{tenderTime}</if>
58
+            <if test="bidBuyDeadline != null "> and bid_buy_deadline = #{bidBuyDeadline}</if>
59
+            <if test="bidWebsite != null  and bidWebsite != ''"> and bid_website = #{bidWebsite}</if>
60
+            <if test="bidDocument != null  and bidDocument != ''"> and bid_document = #{bidDocument}</if>
61
+            <if test="projectBriefly != null  and projectBriefly != ''"> and project_briefly = #{projectBriefly}</if>
62
+            <if test="businessWriter != null "> and business_writer = #{businessWriter}</if>
63
+            <if test="businessDeadline != null "> and business_deadline = #{businessDeadline}</if>
64
+            <if test="techWriter != null "> and tech_writer = #{techWriter}</if>
65
+            <if test="techDeadline != null "> and tech_deadline = #{techDeadline}</if>
66
+            <if test="tenderCombiner != null "> and tender_combiner = #{tenderCombiner}</if>
67
+            <if test="tenderChecker != null "> and tender_checker = #{tenderChecker}</if>
68
+            <if test="tenderPrinter != null "> and tender_printer = #{tenderPrinter}</if>
69
+            <if test="tenderDocument != null  and tenderDocument != ''"> and tender_document = #{tenderDocument}</if>
70
+        </where>
71
+    </select>
72
+    
73
+    <select id="selectCmcTenderByTenderId" parameterType="String" resultMap="CmcTenderResult">
74
+        <include refid="selectCmcTenderVo"/>
75
+        where tender_id = #{tenderId}
76
+    </select>
77
+        
78
+    <insert id="insertCmcTender" parameterType="CmcTender">
79
+        insert into cmc_tender
80
+        <trim prefix="(" suffix=")" suffixOverrides=",">
81
+            <if test="tenderId != null">tender_id,</if>
82
+            <if test="projectName != null">project_name,</if>
83
+            <if test="partyA != null">party_a,</if>
84
+            <if test="aPerson != null">a_person,</if>
85
+            <if test="aPhone != null">a_phone,</if>
86
+            <if test="agent != null">agent,</if>
87
+            <if test="agentPerson != null">agent_person,</if>
88
+            <if test="agentPhone != null">agent_phone,</if>
89
+            <if test="place != null">place,</if>
90
+            <if test="dept != null">dept,</if>
91
+            <if test="trustee != null">trustee,</if>
92
+            <if test="budget != null">budget,</if>
93
+            <if test="quote != null">quote,</if>
94
+            <if test="deposit != null">deposit,</if>
95
+            <if test="tenderTime != null">tender_time,</if>
96
+            <if test="bidBuyDeadline != null">bid_buy_deadline,</if>
97
+            <if test="bidWebsite != null">bid_website,</if>
98
+            <if test="bidDocument != null">bid_document,</if>
99
+            <if test="projectBriefly != null">project_briefly,</if>
100
+            <if test="businessWriter != null">business_writer,</if>
101
+            <if test="businessDeadline != null">business_deadline,</if>
102
+            <if test="techWriter != null">tech_writer,</if>
103
+            <if test="techDeadline != null">tech_deadline,</if>
104
+            <if test="tenderCombiner != null">tender_combiner,</if>
105
+            <if test="tenderChecker != null">tender_checker,</if>
106
+            <if test="tenderPrinter != null">tender_printer,</if>
107
+            <if test="tenderDocument != null">tender_document,</if>
108
+         </trim>
109
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
110
+            <if test="tenderId != null">#{tenderId},</if>
111
+            <if test="projectName != null">#{projectName},</if>
112
+            <if test="partyA != null">#{partyA},</if>
113
+            <if test="aPerson != null">#{aPerson},</if>
114
+            <if test="aPhone != null">#{aPhone},</if>
115
+            <if test="agent != null">#{agent},</if>
116
+            <if test="agentPerson != null">#{agentPerson},</if>
117
+            <if test="agentPhone != null">#{agentPhone},</if>
118
+            <if test="place != null">#{place},</if>
119
+            <if test="dept != null">#{dept},</if>
120
+            <if test="trustee != null">#{trustee},</if>
121
+            <if test="budget != null">#{budget},</if>
122
+            <if test="quote != null">#{quote},</if>
123
+            <if test="deposit != null">#{deposit},</if>
124
+            <if test="tenderTime != null">#{tenderTime},</if>
125
+            <if test="bidBuyDeadline != null">#{bidBuyDeadline},</if>
126
+            <if test="bidWebsite != null">#{bidWebsite},</if>
127
+            <if test="bidDocument != null">#{bidDocument},</if>
128
+            <if test="projectBriefly != null">#{projectBriefly},</if>
129
+            <if test="businessWriter != null">#{businessWriter},</if>
130
+            <if test="businessDeadline != null">#{businessDeadline},</if>
131
+            <if test="techWriter != null">#{techWriter},</if>
132
+            <if test="techDeadline != null">#{techDeadline},</if>
133
+            <if test="tenderCombiner != null">#{tenderCombiner},</if>
134
+            <if test="tenderChecker != null">#{tenderChecker},</if>
135
+            <if test="tenderPrinter != null">#{tenderPrinter},</if>
136
+            <if test="tenderDocument != null">#{tenderDocument},</if>
137
+         </trim>
138
+    </insert>
139
+
140
+    <update id="updateCmcTender" parameterType="CmcTender">
141
+        update cmc_tender
142
+        <trim prefix="SET" suffixOverrides=",">
143
+            <if test="projectName != null">project_name = #{projectName},</if>
144
+            <if test="partyA != null">party_a = #{partyA},</if>
145
+            <if test="aPerson != null">a_person = #{aPerson},</if>
146
+            <if test="aPhone != null">a_phone = #{aPhone},</if>
147
+            <if test="agent != null">agent = #{agent},</if>
148
+            <if test="agentPerson != null">agent_person = #{agentPerson},</if>
149
+            <if test="agentPhone != null">agent_phone = #{agentPhone},</if>
150
+            <if test="place != null">place = #{place},</if>
151
+            <if test="dept != null">dept = #{dept},</if>
152
+            <if test="trustee != null">trustee = #{trustee},</if>
153
+            <if test="budget != null">budget = #{budget},</if>
154
+            <if test="quote != null">quote = #{quote},</if>
155
+            <if test="deposit != null">deposit = #{deposit},</if>
156
+            <if test="tenderTime != null">tender_time = #{tenderTime},</if>
157
+            <if test="bidBuyDeadline != null">bid_buy_deadline = #{bidBuyDeadline},</if>
158
+            <if test="bidWebsite != null">bid_website = #{bidWebsite},</if>
159
+            <if test="bidDocument != null">bid_document = #{bidDocument},</if>
160
+            <if test="projectBriefly != null">project_briefly = #{projectBriefly},</if>
161
+            <if test="businessWriter != null">business_writer = #{businessWriter},</if>
162
+            <if test="businessDeadline != null">business_deadline = #{businessDeadline},</if>
163
+            <if test="techWriter != null">tech_writer = #{techWriter},</if>
164
+            <if test="techDeadline != null">tech_deadline = #{techDeadline},</if>
165
+            <if test="tenderCombiner != null">tender_combiner = #{tenderCombiner},</if>
166
+            <if test="tenderChecker != null">tender_checker = #{tenderChecker},</if>
167
+            <if test="tenderPrinter != null">tender_printer = #{tenderPrinter},</if>
168
+            <if test="tenderDocument != null">tender_document = #{tenderDocument},</if>
169
+        </trim>
170
+        where tender_id = #{tenderId}
171
+    </update>
172
+
173
+    <delete id="deleteCmcTenderByTenderId" parameterType="String">
174
+        delete from cmc_tender where tender_id = #{tenderId}
175
+    </delete>
176
+
177
+    <delete id="deleteCmcTenderByTenderIds" parameterType="String">
178
+        delete from cmc_tender where tender_id in 
179
+        <foreach item="tenderId" collection="array" open="(" separator="," close=")">
180
+            #{tenderId}
181
+        </foreach>
182
+    </delete>
183
+</mapper>

+ 59
- 13
oa-back/sql/sql.sql ファイルの表示

@@ -349,7 +349,8 @@ insert into sys_menu values('2', '系统监控', '0', '2', 'monitor',			null, ''
349 349
 insert into sys_menu values('3', '系统工具', '0', '3', 'tool',				null, '', 1, 0, 'M', '0', '0', '', 'tool',		'admin', sysdate(), '', null, '系统工具目录');
350 350
 insert into sys_menu values('4', '车辆管理', '0', '4', 'car',			'oa/car/index',        	  '', 1, 0, 'C', '0', '0', 'oa:car:list',       	  'car',			'admin', sysdate(), '', null, '车辆管理菜单');
351 351
 insert into sys_menu values('5', '设备管理', '0', '5', 'device',		'oa/device/index',        '', 1, 0, 'C', '0', '0', 'oa:device:list',       	  'component',		'admin', sysdate(), '', null, '设备管理菜单');
352
-insert into sys_menu values('6', '项目管理', '0', '6', 'project',		'oa/project/index',       '', 1, 0, 'C', '0', '0', 'oa:project:list',         'project',		'admin', sysdate(), '', null, '项目管理菜单');
352
+insert into sys_menu values('6', '投标管理', '0', '6', 'tender',		'oa/tender/index',		  '', 1, 0, 'C', '0', '0', 'oa:tender:list',          'guide',			'admin', sysdate(), '', null, '投标管理菜单');
353
+insert into sys_menu values('7', '项目管理', '0', '7', 'project',		'oa/project/index',       '', 1, 0, 'C', '0', '0', 'oa:project:list',         'project',		'admin', sysdate(), '', null, '项目管理菜单');
353 354
 -- 二级菜单
354 355
 insert into sys_menu values('100',  '用户管理', '1',   '1', 'user',       'system/user/index',        '', 1, 0, 'C', '0', '0', 'system:user:list',        'user',          'admin', sysdate(), '', null, '用户管理菜单');
355 356
 insert into sys_menu values('101',  '角色管理', '1',   '2', 'role',       'system/role/index',        '', 1, 0, 'C', '0', '0', 'system:role:list',        'peoples',       'admin', sysdate(), '', null, '角色管理菜单');
@@ -454,17 +455,23 @@ insert into sys_menu values('1064', '车辆修改', '4', '3', '#', '', '', 1, 0,
454 455
 insert into sys_menu values('1065', '车辆删除', '4', '4', '#', '', '', 1, 0, 'F', '0', '0', 'oa:car:remove',              	'#', 'admin', sysdate(), '', null, '');
455 456
 insert into sys_menu values('1066', '车辆导出', '4', '5', '#', '', '', 1, 0, 'F', '0', '0', 'oa:car:export',              	'#', 'admin', sysdate(), '', null, '');
456 457
 -- 设备管理按钮
457
-insert into sys_menu values('1067', '设备查询', '5', '1', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:query',				'#', 'admin', sysdate(), '', null, '');
458
-insert into sys_menu values('1068', '设备新增', '5', '2', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:add',				'#', 'admin', sysdate(), '', null, '');
459
-insert into sys_menu values('1069', '设备修改', '5', '3', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:edit',            	'#', 'admin', sysdate(), '', null, '');
460
-insert into sys_menu values('1070', '设备删除', '5', '4', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:remove',          	'#', 'admin', sysdate(), '', null, '');
461
-insert into sys_menu values('1071', '设备导出', '5', '5', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:export',          	'#', 'admin', sysdate(), '', null, '');
458
+insert into sys_menu values('1067', '设备查询', '5', '1', '#', '', '', 1, 0, 'F', '0', '0', 'oa:device:query',				'#', 'admin', sysdate(), '', null, '');
459
+insert into sys_menu values('1068', '设备新增', '5', '2', '#', '', '', 1, 0, 'F', '0', '0', 'oa:device:add',				'#', 'admin', sysdate(), '', null, '');
460
+insert into sys_menu values('1069', '设备修改', '5', '3', '#', '', '', 1, 0, 'F', '0', '0', 'oa:device:edit',            	'#', 'admin', sysdate(), '', null, '');
461
+insert into sys_menu values('1070', '设备删除', '5', '4', '#', '', '', 1, 0, 'F', '0', '0', 'oa:device:remove',          	'#', 'admin', sysdate(), '', null, '');
462
+insert into sys_menu values('1071', '设备导出', '5', '5', '#', '', '', 1, 0, 'F', '0', '0', 'oa:device:export',          	'#', 'admin', sysdate(), '', null, '');
463
+-- 投标管理按钮
464
+insert into sys_menu values('1072', '投标查询', '6', '1', '#', '', '', 1, 0, 'F', '0', '0', 'oa:tender:query',				'#', 'admin', sysdate(), '', null, '');
465
+insert into sys_menu values('1073', '投标新增', '6', '2', '#', '', '', 1, 0, 'F', '0', '0', 'oa:tender:add',				'#', 'admin', sysdate(), '', null, '');
466
+insert into sys_menu values('1074', '投标修改', '6', '3', '#', '', '', 1, 0, 'F', '0', '0', 'oa:tender:edit',            	'#', 'admin', sysdate(), '', null, '');
467
+insert into sys_menu values('1075', '投标删除', '6', '4', '#', '', '', 1, 0, 'F', '0', '0', 'oa:tender:remove',          	'#', 'admin', sysdate(), '', null, '');
468
+insert into sys_menu values('1076', '投标导出', '6', '5', '#', '', '', 1, 0, 'F', '0', '0', 'oa:tender:export',          	'#', 'admin', sysdate(), '', null, '');
462 469
 -- 项目管理按钮
463
-insert into sys_menu values('1072', '项目查询', '6', '1', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:query',				'#', 'admin', sysdate(), '', null, '');
464
-insert into sys_menu values('1073', '项目新增', '6', '2', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:add',				'#', 'admin', sysdate(), '', null, '');
465
-insert into sys_menu values('1074', '项目修改', '6', '3', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:edit',            	'#', 'admin', sysdate(), '', null, '');
466
-insert into sys_menu values('1075', '项目删除', '6', '4', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:remove',          	'#', 'admin', sysdate(), '', null, '');
467
-insert into sys_menu values('1076', '项目导出', '6', '5', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:export',          	'#', 'admin', sysdate(), '', null, '');
470
+insert into sys_menu values('1077', '项目查询', '7', '1', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:query',				'#', 'admin', sysdate(), '', null, '');
471
+insert into sys_menu values('1078', '项目新增', '7', '2', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:add',				'#', 'admin', sysdate(), '', null, '');
472
+insert into sys_menu values('1079', '项目修改', '7', '3', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:edit',            	'#', 'admin', sysdate(), '', null, '');
473
+insert into sys_menu values('1080', '项目删除', '7', '4', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:remove',          	'#', 'admin', sysdate(), '', null, '');
474
+insert into sys_menu values('1081', '项目导出', '7', '5', '#', '', '', 1, 0, 'F', '0', '0', 'oa:project:export',          	'#', 'admin', sysdate(), '', null, '');
468 475
 
469 476
 -- ----------------------------
470 477
 -- 6、用户和角色关联表  用户N-1角色
@@ -1636,6 +1643,45 @@ insert into `cmc_user_cost` values (56, '八岗六档', 5980.00);
1636 1643
 insert into `cmc_user_cost` values (57, '八岗七档', 6200.00);
1637 1644
 insert into `cmc_user_cost` values (58, '八岗八档', 6420.00);
1638 1645
 
1646
+-- ----------------------------
1647
+-- 31、cmc投标管理表
1648
+-- ----------------------------
1649
+drop table if exists `cmc_tender`;
1650
+create table `cmc_tender`  (
1651
+  `tender_id` 			char(8)  		not null 		comment '投标id(2024-001)',
1652
+  `project_name` 		varchar(50)  	default null 	comment '投标项目名称',
1653
+  `party_a` 			varchar(50)  	default null 	comment '招标业主',
1654
+  `a_person` 			varchar(10)  	default null 	comment '业主联系人',
1655
+  `a_phone` 			varchar(11)  	default null 	comment '业主联系电话',
1656
+  `agent` 				varchar(50)  	default null 	comment '招标代理',
1657
+  `agent_person` 		varchar(10)  	default null 	comment '代理联系人',
1658
+  `agent_phone` 		varchar(11)  	default null 	comment '代理联系电话',
1659
+  `place` 				varchar(50)  	default null 	comment '招标地点',
1660
+  `dept` 				bigint 			default null 	comment '投标部门',
1661
+  `trustee` 			bigint 			default null 	comment '投标委托人',
1662
+  `budget` 				decimal(10, 2) 	default null 	comment '业主预算',
1663
+  `quote` 				decimal(10, 2) 	default null 	comment '拟报价金额',
1664
+  `deposit` 			decimal(10, 2) 	default null 	comment '保证金',
1665
+  `tender_time` 		datetime 		default null 	comment '投标时间',
1666
+  `bid_buy_deadline` 	datetime 		default null 	comment '标书购买截止时间',
1667
+  `bid_website` 		varchar(255)  	default null 	comment '招标信息网址',
1668
+  `bid_document` 		varchar(255)  	default null 	comment '招标文件',
1669
+  `project_briefly` 	varchar(255)  	default null 	comment '项目内容简述',
1670
+  `business_writer` 	bigint 			default null 	comment '商务标书编写人',
1671
+  `business_deadline` 	datetime 		default null 	comment '商务标书要求提交时间',
1672
+  `tech_writer` 		bigint 			default null 	comment '技术标书编写人',
1673
+  `tech_deadline` 		datetime 		default null 	comment '技术标书要求提交时间',
1674
+  `tender_combiner` 	bigint 			default null 	comment '标书合稿人',
1675
+  `tender_checker` 		bigint 			default null 	comment '标书检查人',
1676
+  `tender_printer` 		bigint 			default null 	comment '标书打印装订人',
1677
+  `tender_document` 	varchar(255)  	default null 	comment '标书文件',
1678
+  primary key (`tender_id`)
1679
+) engine = innodb comment = 'cmc投标管理表';
1680
+
1681
+-- ----------------------------
1682
+-- 初始化-投标管理表数据
1683
+-- ----------------------------
1684
+
1639 1685
 SET NAMES utf8mb4;
1640 1686
 SET FOREIGN_KEY_CHECKS = 0;
1641 1687
 
@@ -4412,9 +4458,9 @@ COMMIT;
4412 4458
 -- Records of sys_menu
4413 4459
 -- ----------------------------
4414 4460
 BEGIN;
4415
-INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2021, '流程管理', 0, 6, 'flowable', NULL, NULL, 1, 0, 'M', '0', '0', NULL, 'cascader', 'tony', '2021-03-25 11:35:09', '', NULL, '');
4461
+INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2021, '流程管理', 0, 9, 'flowable', NULL, NULL, 1, 0, 'M', '0', '0', NULL, 'cascader', 'tony', '2021-03-25 11:35:09', '', NULL, '');
4416 4462
 INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2022, '流程定义', 2021, 2, 'definition', 'flowable/definition/index', NULL, 1, 0, 'C', '0', '0', '', 'job', 'tony', '2021-03-25 13:53:55', 'admin', '2021-03-29 09:39:07', '');
4417
-INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2023, '任务管理', 0, 7, 'task', NULL, NULL, 1, 0, 'M', '0', '0', '', 'dict', 'tony', '2021-03-26 10:53:10', 'admin', '2021-03-29 09:37:40', '');
4463
+INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2023, '任务管理', 0, 10, 'task', NULL, NULL, 1, 0, 'M', '0', '0', '', 'dict', 'tony', '2021-03-26 10:53:10', 'admin', '2021-03-29 09:37:40', '');
4418 4464
 INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2024, '待办任务', 2023, 2, 'todo', 'flowable/task/todo/index', NULL, 1, 1, 'C', '0', '0', '', 'cascader', 'admin', '2021-03-26 10:55:52', 'admin', '2021-03-30 09:26:36', '');
4419 4465
 INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2025, '已办任务', 2023, 3, 'finished', 'flowable/task/finished/index', NULL, 1, 1, 'C', '0', '0', '', 'time-range', 'admin', '2021-03-26 10:57:54', 'admin', '2021-03-30 09:26:50', '');
4420 4466
 INSERT INTO `sys_menu` (`menu_id`, `menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (2026, '我的流程', 2023, 1, 'process', 'flowable/task/myProcess/index', NULL, 1, 1, 'C', '0', '0', '', 'guide', 'admin', '2021-03-30 09:26:23', 'admin', '2022-12-12 09:58:07', '');

+ 44
- 0
oa-ui/src/api/oa/tender/tender.js ファイルの表示

@@ -0,0 +1,44 @@
1
+import request from '@/utils/request'
2
+
3
+// 查询投标管理列表
4
+export function listTender(query) {
5
+  return request({
6
+    url: '/oa/tender/list',
7
+    method: 'get',
8
+    params: query
9
+  })
10
+}
11
+
12
+// 查询投标管理详细
13
+export function getTender(tenderId) {
14
+  return request({
15
+    url: '/oa/tender/' + tenderId,
16
+    method: 'get'
17
+  })
18
+}
19
+
20
+// 新增投标管理
21
+export function addTender(data) {
22
+  return request({
23
+    url: '/oa/tender',
24
+    method: 'post',
25
+    data: data
26
+  })
27
+}
28
+
29
+// 修改投标管理
30
+export function updateTender(data) {
31
+  return request({
32
+    url: '/oa/tender',
33
+    method: 'put',
34
+    data: data
35
+  })
36
+}
37
+
38
+// 删除投标管理
39
+export function delTender(tenderId) {
40
+  return request({
41
+    url: '/oa/tender/' + tenderId,
42
+    method: 'delete'
43
+  })
44
+}

+ 631
- 0
oa-ui/src/views/oa/tender/index.vue ファイルの表示

@@ -0,0 +1,631 @@
1
+<template>
2
+  <div class="app-container">
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
+        />
11
+      </el-form-item>
12
+      <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
+        />
107
+      </el-form-item>
108
+      <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"
113
+          placeholder="请选择投标时间">
114
+        </el-date-picker>
115
+      </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>
213
+        <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>
215
+      </el-form-item>
216
+    </el-form>
217
+
218
+    <el-row :gutter="10" class="mb8">
219
+      <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>
228
+      </el-col>
229
+      <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>
239
+      </el-col>
240
+      <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>
250
+      </el-col>
251
+      <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>
260
+      </el-col>
261
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
262
+    </el-row>
263
+
264
+    <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" />
280
+      <el-table-column label="投标时间" align="center" prop="tenderTime" width="180">
281
+        <template slot-scope="scope">
282
+          <span>{{ parseTime(scope.row.tenderTime, '{y}-{m}-{d}') }}</span>
283
+        </template>
284
+      </el-table-column>
285
+      <el-table-column label="标书购买截止时间" align="center" prop="bidBuyDeadline" width="180">
286
+        <template slot-scope="scope">
287
+          <span>{{ parseTime(scope.row.bidBuyDeadline, '{y}-{m}-{d}') }}</span>
288
+        </template>
289
+      </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" />
309
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
310
+        <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>
325
+        </template>
326
+      </el-table-column>
327
+    </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
+    />
336
+
337
+    <!-- 添加或修改投标管理对话框 -->
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">
340
+        <el-form-item label="投标项目名称" prop="projectName">
341
+          <el-input v-model="form.projectName" placeholder="请输入投标项目名称" />
342
+        </el-form-item>
343
+        <el-form-item label="招标业主" prop="partyA">
344
+          <el-input v-model="form.partyA" placeholder="请输入招标业主" />
345
+        </el-form-item>
346
+        <el-form-item label="业主联系人" prop="aPerson">
347
+          <el-input v-model="form.aPerson" placeholder="请输入业主联系人" />
348
+        </el-form-item>
349
+        <el-form-item label="业主联系电话" prop="aPhone">
350
+          <el-input v-model="form.aPhone" placeholder="请输入业主联系电话" />
351
+        </el-form-item>
352
+        <el-form-item label="招标代理" prop="agent">
353
+          <el-input v-model="form.agent" placeholder="请输入招标代理" />
354
+        </el-form-item>
355
+        <el-form-item label="代理联系人" prop="agentPerson">
356
+          <el-input v-model="form.agentPerson" placeholder="请输入代理联系人" />
357
+        </el-form-item>
358
+        <el-form-item label="代理联系电话" prop="agentPhone">
359
+          <el-input v-model="form.agentPhone" placeholder="请输入代理联系电话" />
360
+        </el-form-item>
361
+        <el-form-item label="招标地点" prop="place">
362
+          <el-input v-model="form.place" placeholder="请输入招标地点" />
363
+        </el-form-item>
364
+        <el-form-item label="投标部门" prop="dept">
365
+          <el-input v-model="form.dept" placeholder="请输入投标部门" />
366
+        </el-form-item>
367
+        <el-form-item label="投标委托人" prop="trustee">
368
+          <el-input v-model="form.trustee" placeholder="请输入投标委托人" />
369
+        </el-form-item>
370
+        <el-form-item label="业主预算" prop="budget">
371
+          <el-input v-model="form.budget" placeholder="请输入业主预算" />
372
+        </el-form-item>
373
+        <el-form-item label="拟报价金额" prop="quote">
374
+          <el-input v-model="form.quote" placeholder="请输入拟报价金额" />
375
+        </el-form-item>
376
+        <el-form-item label="保证金" prop="deposit">
377
+          <el-input v-model="form.deposit" placeholder="请输入保证金" />
378
+        </el-form-item>
379
+        <el-form-item label="投标时间" prop="tenderTime">
380
+          <el-date-picker clearable
381
+            v-model="form.tenderTime"
382
+            type="date"
383
+            value-format="yyyy-MM-dd"
384
+            placeholder="请选择投标时间">
385
+          </el-date-picker>
386
+        </el-form-item>
387
+        <el-form-item label="标书购买截止时间" prop="bidBuyDeadline">
388
+          <el-date-picker clearable
389
+            v-model="form.bidBuyDeadline"
390
+            type="date"
391
+            value-format="yyyy-MM-dd"
392
+            placeholder="请选择标书购买截止时间">
393
+          </el-date-picker>
394
+        </el-form-item>
395
+        <el-form-item label="招标信息网址" prop="bidWebsite">
396
+          <el-input v-model="form.bidWebsite" placeholder="请输入招标信息网址" />
397
+        </el-form-item>
398
+        <el-form-item label="招标文件" prop="bidDocument">
399
+          <el-input v-model="form.bidDocument" placeholder="请输入招标文件" />
400
+        </el-form-item>
401
+        <el-form-item label="项目内容简述" prop="projectBriefly">
402
+          <el-input v-model="form.projectBriefly" placeholder="请输入项目内容简述" />
403
+        </el-form-item>
404
+        <el-form-item label="商务标书编写人" prop="businessWriter">
405
+          <el-input v-model="form.businessWriter" placeholder="请输入商务标书编写人" />
406
+        </el-form-item>
407
+        <el-form-item label="商务标书要求提交时间" prop="businessDeadline">
408
+          <el-date-picker clearable
409
+            v-model="form.businessDeadline"
410
+            type="date"
411
+            value-format="yyyy-MM-dd"
412
+            placeholder="请选择商务标书要求提交时间">
413
+          </el-date-picker>
414
+        </el-form-item>
415
+        <el-form-item label="技术标书编写人" prop="techWriter">
416
+          <el-input v-model="form.techWriter" placeholder="请输入技术标书编写人" />
417
+        </el-form-item>
418
+        <el-form-item label="技术标书要求提交时间" prop="techDeadline">
419
+          <el-date-picker clearable
420
+            v-model="form.techDeadline"
421
+            type="date"
422
+            value-format="yyyy-MM-dd"
423
+            placeholder="请选择技术标书要求提交时间">
424
+          </el-date-picker>
425
+        </el-form-item>
426
+        <el-form-item label="标书合稿人" prop="tenderCombiner">
427
+          <el-input v-model="form.tenderCombiner" placeholder="请输入标书合稿人" />
428
+        </el-form-item>
429
+        <el-form-item label="标书检查人" prop="tenderChecker">
430
+          <el-input v-model="form.tenderChecker" placeholder="请输入标书检查人" />
431
+        </el-form-item>
432
+        <el-form-item label="标书打印装订人" prop="tenderPrinter">
433
+          <el-input v-model="form.tenderPrinter" placeholder="请输入标书打印装订人" />
434
+        </el-form-item>
435
+        <el-form-item label="标书文件" prop="tenderDocument">
436
+          <el-input v-model="form.tenderDocument" placeholder="请输入标书文件" />
437
+        </el-form-item>
438
+      </el-form>
439
+      <div slot="footer" class="dialog-footer">
440
+        <el-button type="primary" @click="submitForm">确 定</el-button>
441
+        <el-button @click="cancel">取 消</el-button>
442
+      </div>
443
+    </el-dialog>
444
+  </div>
445
+</template>
446
+
447
+<script>
448
+import { listTender, getTender, delTender, addTender, updateTender } from "@/api/oa/tender/tender";
449
+
450
+export default {
451
+  name: "Tender",
452
+  data() {
453
+    return {
454
+      // 遮罩层
455
+      loading: true,
456
+      // 选中数组
457
+      ids: [],
458
+      // 非单个禁用
459
+      single: true,
460
+      // 非多个禁用
461
+      multiple: true,
462
+      // 显示搜索条件
463
+      showSearch: true,
464
+      // 总条数
465
+      total: 0,
466
+      // 投标管理表格数据
467
+      tenderList: [],
468
+      // 弹出层标题
469
+      title: "",
470
+      // 是否显示弹出层
471
+      open: false,
472
+      // 查询参数
473
+      queryParams: {
474
+        pageNum: 1,
475
+        pageSize: 10,
476
+        projectName: null,
477
+        partyA: null,
478
+        aPerson: null,
479
+        aPhone: null,
480
+        agent: null,
481
+        agentPerson: null,
482
+        agentPhone: null,
483
+        place: null,
484
+        dept: null,
485
+        trustee: null,
486
+        budget: null,
487
+        quote: null,
488
+        deposit: null,
489
+        tenderTime: null,
490
+        bidBuyDeadline: null,
491
+        bidWebsite: null,
492
+        bidDocument: null,
493
+        projectBriefly: null,
494
+        businessWriter: null,
495
+        businessDeadline: null,
496
+        techWriter: null,
497
+        techDeadline: null,
498
+        tenderCombiner: null,
499
+        tenderChecker: null,
500
+        tenderPrinter: null,
501
+        tenderDocument: null
502
+      },
503
+      // 表单参数
504
+      form: {},
505
+      // 表单校验
506
+      rules: {
507
+      }
508
+    };
509
+  },
510
+  created() {
511
+    this.getList();
512
+  },
513
+  methods: {
514
+    /** 查询投标管理列表 */
515
+    getList() {
516
+      this.loading = true;
517
+      listTender(this.queryParams).then(response => {
518
+        this.tenderList = response.rows;
519
+        this.total = response.total;
520
+        this.loading = false;
521
+      });
522
+    },
523
+    // 取消按钮
524
+    cancel() {
525
+      this.open = false;
526
+      this.reset();
527
+    },
528
+    // 表单重置
529
+    reset() {
530
+      this.form = {
531
+        tenderId: null,
532
+        projectName: null,
533
+        partyA: null,
534
+        aPerson: null,
535
+        aPhone: null,
536
+        agent: null,
537
+        agentPerson: null,
538
+        agentPhone: null,
539
+        place: null,
540
+        dept: null,
541
+        trustee: null,
542
+        budget: null,
543
+        quote: null,
544
+        deposit: null,
545
+        tenderTime: null,
546
+        bidBuyDeadline: null,
547
+        bidWebsite: null,
548
+        bidDocument: null,
549
+        projectBriefly: null,
550
+        businessWriter: null,
551
+        businessDeadline: null,
552
+        techWriter: null,
553
+        techDeadline: null,
554
+        tenderCombiner: null,
555
+        tenderChecker: null,
556
+        tenderPrinter: null,
557
+        tenderDocument: null
558
+      };
559
+      this.resetForm("form");
560
+    },
561
+    /** 搜索按钮操作 */
562
+    handleQuery() {
563
+      this.queryParams.pageNum = 1;
564
+      this.getList();
565
+    },
566
+    /** 重置按钮操作 */
567
+    resetQuery() {
568
+      this.resetForm("queryForm");
569
+      this.handleQuery();
570
+    },
571
+    // 多选框选中数据
572
+    handleSelectionChange(selection) {
573
+      this.ids = selection.map(item => item.tenderId)
574
+      this.single = selection.length!==1
575
+      this.multiple = !selection.length
576
+    },
577
+    /** 新增按钮操作 */
578
+    handleAdd() {
579
+      this.reset();
580
+      this.open = true;
581
+      this.title = "添加投标管理";
582
+    },
583
+    /** 修改按钮操作 */
584
+    handleUpdate(row) {
585
+      this.reset();
586
+      const tenderId = row.tenderId || this.ids
587
+      getTender(tenderId).then(response => {
588
+        this.form = response.data;
589
+        this.open = true;
590
+        this.title = "修改投标管理";
591
+      });
592
+    },
593
+    /** 提交按钮 */
594
+    submitForm() {
595
+      this.$refs["form"].validate(valid => {
596
+        if (valid) {
597
+          if (this.form.tenderId != null) {
598
+            updateTender(this.form).then(response => {
599
+              this.$modal.msgSuccess("修改成功");
600
+              this.open = false;
601
+              this.getList();
602
+            });
603
+          } else {
604
+            addTender(this.form).then(response => {
605
+              this.$modal.msgSuccess("新增成功");
606
+              this.open = false;
607
+              this.getList();
608
+            });
609
+          }
610
+        }
611
+      });
612
+    },
613
+    /** 删除按钮操作 */
614
+    handleDelete(row) {
615
+      const tenderIds = row.tenderId || this.ids;
616
+      this.$modal.confirm('是否确认删除投标管理编号为"' + tenderIds + '"的数据项?').then(function() {
617
+        return delTender(tenderIds);
618
+      }).then(() => {
619
+        this.getList();
620
+        this.$modal.msgSuccess("删除成功");
621
+      }).catch(() => {});
622
+    },
623
+    /** 导出按钮操作 */
624
+    handleExport() {
625
+      this.download('oa/tender/export', {
626
+        ...this.queryParams
627
+      }, `tender_${new Date().getTime()}.xlsx`)
628
+    }
629
+  }
630
+};
631
+</script>

読み込み中…
キャンセル
保存