Quellcode durchsuchen

修改耗材管理;

新增承接合同评审日期修改功能
余思翰 vor 10 Monaten
Ursprung
Commit
17681704c3

+ 1
- 1
oa-back/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml Datei anzeigen

@@ -306,7 +306,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
306 306
 			<if test="major != null">major = #{major},</if>
307 307
 			<if test="degree != null">degree = #{degree},</if>
308 308
 			<if test="contractSign != null">contract_sign = #{contractSign},</if>
309
-			<if test="contractExpire != null">contract_expire = #{contractExpire},</if>
309
+			contract_expire = #{contractExpire},
310 310
 			<if test="homePlace != null">home_place = #{homePlace},</if>
311 311
  			update_time = sysdate()
312 312
  		</set>

+ 1
- 1
oa-ui/src/views/flowable/form/business/contractForm.vue Datei anzeigen

@@ -696,7 +696,7 @@ export default {
696 696
             if (res.rows)
697 697
               this.paymentList = res.rows;
698 698
           });
699
-          listContractComment({ contractId: this.taskForm.formId }).then(res => {
699
+          listContractComment({ pageNum: 1, pageSize: 100, contractId: this.taskForm.formId }).then(res => {
700 700
             if (res.rows && res.rows.length != 0) {
701 701
               this.commentList = res.rows;
702 702
               for (let comment of this.commentList) {

+ 89
- 51
oa-ui/src/views/oa/contract/index.vue Datei anzeigen

@@ -2,7 +2,7 @@
2 2
  * @Author: ysh
3 3
  * @Date: 2024-03-18 09:05:41
4 4
  * @LastEditors: Please set LastEditors
5
- * @LastEditTime: 2024-07-24 15:01:08
5
+ * @LastEditTime: 2024-08-06 14:38:13
6 6
 -->
7 7
 <template>
8 8
   <div class="app-container">
@@ -15,26 +15,6 @@
15 15
         <el-input v-model="queryParams.contractCode" placeholder="请输入合同编码" clearable
16 16
           @keyup.enter.native="handleQuery" />
17 17
       </el-form-item>
18
-      <!-- <el-form-item label="合同编号" prop="contractNumber">
19
-        <el-input v-model="queryParams.contractNumber" placeholder="请输入合同编号" clearable
20
-          @keyup.enter.native="handleQuery" />
21
-      </el-form-item>
22
-      <el-form-item label="拟稿人" prop="drafter">
23
-        <el-select v-model="queryParams.drafter" filterable clearable>
24
-          <el-option :key="item.userId" v-for="item of $store.state.user.userList" :label="item.nickName"
25
-            :value="item.userId"></el-option>
26
-        </el-select>
27
-      </el-form-item>
28
-      <el-form-item label="拟稿日期" prop="draftTime">
29
-        <el-date-picker clearable v-model="queryParams.draftTime" type="date" value-format="yyyy-MM-dd"
30
-          placeholder="请选择拟稿日期">
31
-        </el-date-picker>
32
-      </el-form-item>
33
-      <el-form-item label="签订日期" prop="signDate">
34
-        <el-date-picker clearable v-model="queryParams.signDate" type="date" value-format="yyyy-MM-dd"
35
-          placeholder="请选择签订日期">
36
-        </el-date-picker>
37
-      </el-form-item> -->
38 18
       <el-form-item>
39 19
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
40 20
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -81,12 +61,12 @@
81 61
           </el-link>
82 62
         </template>
83 63
       </el-table-column>
84
-      <el-table-column label="拟稿日期" align="center" prop="draftTime" width="180">
64
+      <el-table-column label="拟稿日期" align="center" prop="draftTime">
85 65
         <template slot-scope="scope">
86 66
           <span>{{ parseTime(scope.row.draftTime, '{y}-{m}-{d}') }}</span>
87 67
         </template>
88 68
       </el-table-column>
89
-      <el-table-column label="签订日期" align="center" prop="signDate" width="180">
69
+      <el-table-column label="签订日期" align="center" prop="signDate">
90 70
         <template slot-scope="scope">
91 71
           <span>{{ parseTime(scope.row.signDate, '{y}-{m}-{d}') }}</span>
92 72
         </template>
@@ -116,9 +96,9 @@
116 96
         <template slot-scope="scope">
117 97
           <el-button size="mini" type="text" icon="el-icon-view" @click="handleView(scope.row)"
118 98
             v-hasPermi="['oa:contract:query']">查看</el-button>
119
-          <!-- <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
99
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
120 100
             v-hasPermi="['oa:contract:edit']">修改</el-button>
121
-          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
101
+          <!-- <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
122 102
             v-hasPermi="['oa:contract:remove']">删除</el-button> -->
123 103
         </template>
124 104
       </el-table-column>
@@ -128,43 +108,78 @@
128 108
       @pagination="getList" />
129 109
 
130 110
     <!-- 添加或修改cmc合同评审对话框 -->
131
-    <el-dialog :title="title" :visible.sync="open" width="600px" append-to-body>
132
-      <el-form ref="form" :model="form" :rules="rules" label-width="100px">
133
-        <el-form-item label="合同编号" prop="contractNumber">
134
-          <el-input v-model="form.contractNumber" placeholder="请输入合同编号" />
111
+    <el-dialog :title="title" :visible.sync="open" width="50%" append-to-body>
112
+      <el-form ref="form" :model="form" :rules="rules" label-width="130px">
113
+        <el-form-item label="合同名称" prop="contractName">
114
+          {{ form.contractName }}
135 115
         </el-form-item>
136
-        <el-form-item label="合同金额" prop="amount">
137
-          <el-input v-model="form.amount" placeholder="请输入合同金额" />
138
-        </el-form-item>
139
-        <el-form-item label="履约保证金" prop="deposit">
140
-          <el-input v-model="form.deposit" placeholder="请输入履约保证金" />
141
-        </el-form-item>
142
-        <el-form-item label="合同文件" prop="contractDocument">
143
-          <el-input v-model="form.contractDocument" placeholder="请输入合同文件" />
144
-        </el-form-item>
145
-        <el-form-item label="拟稿人" prop="drafter">
146
-          <el-input v-model="form.drafter" placeholder="请输入拟稿人" />
116
+        <el-form-item label="合同编号" prop="contractNumber">
117
+          {{ form.contractNumber }}
147 118
         </el-form-item>
148 119
         <el-form-item label="拟稿日期" prop="draftTime">
149 120
           <el-date-picker clearable v-model="form.draftTime" type="date" value-format="yyyy-MM-dd"
150 121
             placeholder="请选择拟稿日期">
151 122
           </el-date-picker>
152 123
         </el-form-item>
153
-        <el-form-item label="合同备注" prop="remark">
154
-          <el-input v-model="form.remark" placeholder="请输入合同备注" />
124
+        <el-form-item label="分管审批日期" prop="managerTime">
125
+          <el-date-picker clearable v-model="form.managerTime" type="date" value-format="yyyy-MM-dd"
126
+            placeholder="请选择分管审批日期">
127
+          </el-date-picker>
128
+        </el-form-item>
129
+        <el-form-item label="总经理审批日期" prop="gmTime">
130
+          <el-date-picker clearable v-model="form.gmTime" type="date" value-format="yyyy-MM-dd"
131
+            placeholder="请选择总经理审批日期">
132
+          </el-date-picker>
155 133
         </el-form-item>
156 134
         <el-form-item label="签订日期" prop="signDate">
157 135
           <el-date-picker clearable v-model="form.signDate" type="date" value-format="yyyy-MM-dd" placeholder="请选择签订日期">
158 136
           </el-date-picker>
159 137
         </el-form-item>
160
-        <el-form-item label="签订备注" prop="signRemark">
161
-          <el-input v-model="form.signRemark" placeholder="请输入签订备注" />
138
+        <el-form-item label="评审方式">
139
+          <el-tag :type="form.commentType == '2' ? 'success' : 'warning'">
140
+            {{ getCommentType(form.commentType) }}</el-tag>
162 141
         </el-form-item>
163
-        <el-form-item label="签订扫描件" prop="signScan">
164
-          <el-input v-model="form.signScan" placeholder="请输入签订扫描件" />
142
+        <el-form-item label="" label-width="0" v-if="form.commentType == '2'">
143
+          <table border="1" style="width:100%;">
144
+            <tr>
145
+              <td style="width: 50px;">序号</td>
146
+              <td>会审部门</td>
147
+              <td>会审人</td>
148
+              <td>会审意见</td>
149
+              <td style="width: 200px;">会审附件</td>
150
+              <!-- <td style="width: 90px;">签名</td> -->
151
+              <td style="width: 100px;">日期</td>
152
+            </tr>
153
+            <tr v-for="(comment, index) in commentList" :key="index">
154
+              <td>
155
+                {{ index + 1 }}
156
+              </td>
157
+              <td>
158
+                {{ getDeptName(comment.deptId) }}
159
+              </td>
160
+              <td>
161
+                {{ getUserName(comment.userId) }}
162
+              </td>
163
+              <td>
164
+                {{ comment.comment }}
165
+              </td>
166
+              <td>
167
+                <el-link type="primary" @click="reviewWord(`${baseUrl}${'/profile/upload' + comment.document}`)">
168
+                  {{ getFileName(comment.document) }}
169
+                </el-link>
170
+              </td>
171
+              <!-- <td>
172
+                <span class="auditor">{{ comment.commentUser ? comment.commentUser.nickName : '' }}</span>
173
+              </td> -->
174
+              <td>
175
+                <el-date-picker v-model="comment.commentTime" type="date" value-format="yyyy-MM-dd" style="width:140px;"
176
+                  placeholder="选择日期"></el-date-picker>
177
+              </td>
178
+            </tr>
179
+          </table>
165 180
         </el-form-item>
166 181
       </el-form>
167
-      <div slot="footer" class="dialog-footer">
182
+      <div slot="footer" class="dialog-footer text-center">
168 183
         <el-button type="primary" @click="submitForm">确 定</el-button>
169 184
         <el-button @click="cancel">取 消</el-button>
170 185
       </div>
@@ -173,7 +188,6 @@
173 188
     <el-dialog :title="title" :visible.sync="openInfo" width="80%" append-to-body>
174 189
       <!-- <contract-info :form="form"></contract-info> -->
175 190
       <contract-form :taskForm="taskForm" :taskName="''" :flowDisabled="false"></contract-form>
176
-
177 191
     </el-dialog>
178 192
   </div>
179 193
 </template>
@@ -186,6 +200,7 @@ import { listDefinition } from "@/api/flowable/definition";
186 200
 import { definitionStart, flowXmlAndNode } from "@/api/flowable/definition";
187 201
 import { todoList, getNextFlowNodeByStart } from "@/api/flowable/todo";
188 202
 import { Snowflake } from '@/utils/snowFlake.js'
203
+import { listContractComment, addContractComment, updateContractComment } from "@/api/oa/contract/contractComment";
189 204
 export default {
190 205
   components: { contractInfo, ContractForm },
191 206
   name: "Contract",
@@ -232,7 +247,9 @@ export default {
232 247
       rules: {
233 248
       },
234 249
       project: {},
235
-      taskForm: {}
250
+      taskForm: {},
251
+      commentList: [],
252
+      commentOpen: false,
236 253
     };
237 254
   },
238 255
   created() {
@@ -313,12 +330,16 @@ export default {
313 330
     },
314 331
     /** 修改按钮操作 */
315 332
     handleUpdate(row) {
316
-      this.reset();
317 333
       const contractId = row.contractId || this.ids
318 334
       getContract(contractId).then(response => {
319 335
         this.form = response.data;
320 336
         this.open = true;
321
-        this.title = "修改cmc合同评审";
337
+        this.title = "修改承接合同评审_日期";
338
+        listContractComment({ pageNum: 1, pageSize: 100, contractId: contractId }).then(res => {
339
+          if (res.rows && res.rows.length != 0) {
340
+            this.commentList = res.rows;
341
+          }
342
+        })
322 343
       });
323 344
     },
324 345
     // 登记合同
@@ -398,6 +419,9 @@ export default {
398 419
       this.$refs["form"].validate(valid => {
399 420
         if (valid) {
400 421
           if (this.form.contractId != null) {
422
+            for (let comment of this.commentList) {
423
+              updateContractComment(comment);
424
+            }
401 425
             updateContract(this.form).then(response => {
402 426
               this.$modal.msgSuccess("修改成功");
403 427
               this.open = false;
@@ -432,3 +456,17 @@ export default {
432 456
   }
433 457
 };
434 458
 </script>
459
+<style lang="scss" scoped>
460
+table {
461
+  /*边框*/
462
+  /* border: 1px solid black; */
463
+  text-align: center;
464
+  border-collapse: collapse;
465
+
466
+  /*设置背景颜色*/
467
+  /* background-color: #bfa; */
468
+  td {
469
+    padding: 5px;
470
+  }
471
+}
472
+</style>

+ 119
- 122
oa-ui/src/views/oa/material/buy.vue Datei anzeigen

@@ -1,61 +1,31 @@
1 1
 <template>
2 2
   <div class="app-container">
3 3
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
4
-      <el-form-item label="耗材id" prop="materialId">
5
-        <el-input
6
-          v-model="queryParams.materialId"
7
-          placeholder="请输入耗材id"
8
-          clearable
9
-          @keyup.enter.native="handleQuery"
10
-        />
4
+      <el-form-item label="耗材名称" prop="materialId">
5
+        <el-select v-model="queryParams.materialId" filterable clearable remote reserve-keyword placeholder="请输入耗材名称"
6
+          :remote-method="remoteMethod" :loading="remoteLoading" style="width:300px;">
7
+          <el-option v-for="item in materialList" :key="item.materialId" :label="item.name"
8
+            :value="item.materialId">
9
+            <span style="float: left">{{ item.name }}</span>
10
+            <span style="float: right; color: #8492a6; font-size: 13px">{{ item.brand }}</span>
11
+            <span style="float: right; color: #8492a6; font-size: 13px">{{ item.series }}</span>
12
+          </el-option>
13
+        </el-select>
11 14
       </el-form-item>
12 15
       <el-form-item label="采购日期" prop="buyTime">
13
-        <el-date-picker clearable
14
-          v-model="queryParams.buyTime"
15
-          type="date"
16
-          value-format="yyyy-MM-dd"
16
+        <el-date-picker clearable v-model="queryParams.buyTime" type="date" value-format="yyyy-MM-dd"
17 17
           placeholder="请选择采购日期">
18 18
         </el-date-picker>
19 19
       </el-form-item>
20 20
       <el-form-item label="采购地点" prop="place">
21
-        <el-input
22
-          v-model="queryParams.place"
23
-          placeholder="请输入采购地点"
24
-          clearable
25
-          @keyup.enter.native="handleQuery"
26
-        />
27
-      </el-form-item>
28
-      <el-form-item label="采购数量" prop="totalNum">
29
-        <el-input
30
-          v-model="queryParams.totalNum"
31
-          placeholder="请输入采购数量"
32
-          clearable
33
-          @keyup.enter.native="handleQuery"
34
-        />
35
-      </el-form-item>
36
-      <el-form-item label="单价" prop="price">
37
-        <el-input
38
-          v-model="queryParams.price"
39
-          placeholder="请输入单价"
40
-          clearable
41
-          @keyup.enter.native="handleQuery"
42
-        />
43
-      </el-form-item>
44
-      <el-form-item label="总价" prop="amount">
45
-        <el-input
46
-          v-model="queryParams.amount"
47
-          placeholder="请输入总价"
48
-          clearable
49
-          @keyup.enter.native="handleQuery"
50
-        />
21
+        <el-input v-model="queryParams.place" placeholder="请输入采购地点" clearable @keyup.enter.native="handleQuery" />
51 22
       </el-form-item>
52 23
       <el-form-item label="采购人" prop="buyer">
53
-        <el-input
54
-          v-model="queryParams.buyer"
55
-          placeholder="请输入采购人"
56
-          clearable
57
-          @keyup.enter.native="handleQuery"
58
-        />
24
+        <el-select v-model="queryParams.buyer" filterable clearable @keyup.enter.native="handleQuery">
25
+          <el-option v-for="item in $store.state.user.userList" :key="item.userId" :label="item.nickName"
26
+            :value="item.userId">
27
+          </el-option>
28
+        </el-select>
59 29
       </el-form-item>
60 30
       <el-form-item>
61 31
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -65,46 +35,20 @@
65 35
 
66 36
     <el-row :gutter="10" class="mb8">
67 37
       <el-col :span="1.5">
68
-        <el-button
69
-          type="primary"
70
-          plain
71
-          icon="el-icon-plus"
72
-          size="mini"
73
-          @click="handleAdd"
74
-          v-hasPermi="['oa:materialBuy:add']"
75
-        >新增</el-button>
38
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
39
+          v-hasPermi="['oa:materialBuy:add']">新增</el-button>
76 40
       </el-col>
77 41
       <el-col :span="1.5">
78
-        <el-button
79
-          type="success"
80
-          plain
81
-          icon="el-icon-edit"
82
-          size="mini"
83
-          :disabled="single"
84
-          @click="handleUpdate"
85
-          v-hasPermi="['oa:materialBuy:edit']"
86
-        >修改</el-button>
42
+        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
43
+          v-hasPermi="['oa:materialBuy:edit']">修改</el-button>
87 44
       </el-col>
88 45
       <el-col :span="1.5">
89
-        <el-button
90
-          type="danger"
91
-          plain
92
-          icon="el-icon-delete"
93
-          size="mini"
94
-          :disabled="multiple"
95
-          @click="handleDelete"
96
-          v-hasPermi="['oa:materialBuy:remove']"
97
-        >删除</el-button>
46
+        <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
47
+          v-hasPermi="['oa:materialBuy:remove']">删除</el-button>
98 48
       </el-col>
99 49
       <el-col :span="1.5">
100
-        <el-button
101
-          type="warning"
102
-          plain
103
-          icon="el-icon-download"
104
-          size="mini"
105
-          @click="handleExport"
106
-          v-hasPermi="['oa:materialBuy:export']"
107
-        >导出</el-button>
50
+        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
51
+          v-hasPermi="['oa:materialBuy:export']">导出</el-button>
108 52
       </el-col>
109 53
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
110 54
     </el-row>
@@ -112,7 +56,7 @@
112 56
     <el-table v-loading="loading" :data="materialBuyList" @selection-change="handleSelectionChange">
113 57
       <el-table-column type="selection" width="55" align="center" />
114 58
       <!-- <el-table-column label="耗材购买id" align="center" prop="buyId" /> -->
115
-      <!-- <el-table-column label="耗材id" align="center" prop="materialId" /> -->      
59
+      <!-- <el-table-column label="耗材id" align="center" prop="materialId" /> -->
116 60
       <el-table-column label="耗材品牌" align="center" prop="material.brand" />
117 61
       <el-table-column label="耗材名称" align="center" prop="material.name" />
118 62
       <el-table-column label="规格型号" align="center" prop="material.series" />
@@ -129,63 +73,50 @@
129 73
       <el-table-column label="备注" align="center" prop="remark" />
130 74
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
131 75
         <template slot-scope="scope">
132
-          <el-button
133
-            size="mini"
134
-            type="text"
135
-            icon="el-icon-edit"
136
-            @click="handleUpdate(scope.row)"
137
-            v-hasPermi="['oa:materialBuy:edit']"
138
-          >修改</el-button>
139
-          <el-button
140
-            size="mini"
141
-            type="text"
142
-            icon="el-icon-delete"
143
-            @click="handleDelete(scope.row)"
144
-            v-hasPermi="['oa:materialBuy:remove']"
145
-          >删除</el-button>
76
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
77
+            v-hasPermi="['oa:materialBuy:edit']">修改</el-button>
78
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
79
+            v-hasPermi="['oa:materialBuy:remove']">删除</el-button>
146 80
         </template>
147 81
       </el-table-column>
148 82
     </el-table>
149
-    
150
-    <pagination
151
-      v-show="total>0"
152
-      :total="total"
153
-      :page.sync="queryParams.pageNum"
154
-      :limit.sync="queryParams.pageSize"
155
-      @pagination="getList"
156
-    />
83
+
84
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
85
+      @pagination="getList" />
157 86
 
158 87
     <!-- 添加或修改cmc耗材购买对话框 -->
159 88
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
160 89
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
161
-        <el-form-item label="耗材id" prop="materialId">
162
-          <el-input v-model="form.materialId" placeholder="请输入耗材id" />
90
+        <el-form-item label="耗材名称" prop="materialId">
91
+          <el-tag v-if="chooseM.name">{{ chooseMname }}</el-tag>
92
+          <el-button type="primary" @click="materialOpen = true" size="mini">耗材选择</el-button>
163 93
         </el-form-item>
164 94
         <el-form-item label="采购日期" prop="buyTime">
165
-          <el-date-picker clearable
166
-            v-model="form.buyTime"
167
-            type="date"
168
-            value-format="yyyy-MM-dd"
169
-            placeholder="请选择采购日期">
95
+          <el-date-picker clearable v-model="form.buyTime" type="date" value-format="yyyy-MM-dd" placeholder="请选择采购日期">
170 96
           </el-date-picker>
171 97
         </el-form-item>
172 98
         <el-form-item label="采购地点" prop="place">
173 99
           <el-input v-model="form.place" placeholder="请输入采购地点" />
174 100
         </el-form-item>
175 101
         <el-form-item label="采购数量" prop="totalNum">
176
-          <el-input v-model="form.totalNum" placeholder="请输入采购数量" />
102
+          <el-input-number :controls="false" v-model="form.totalNum" placeholder="请输入采购数量" @blur="computeAmount()" />
177 103
         </el-form-item>
178 104
         <el-form-item label="单价" prop="price">
179
-          <el-input v-model="form.price" placeholder="请输入单价" />
105
+          <el-input-number :controls="false" v-model="form.price" placeholder="请输入单价" @blur="computeAmount()" />
180 106
         </el-form-item>
181 107
         <el-form-item label="总价" prop="amount">
182
-          <el-input v-model="form.amount" placeholder="请输入总价" />
108
+          <!-- <el-input v-model="form.amount" placeholder="请输入总价" /> -->
109
+          <el-tag>{{ form.amount }}</el-tag>
183 110
         </el-form-item>
184 111
         <el-form-item label="采购人" prop="buyer">
185
-          <el-input v-model="form.buyer" placeholder="请输入采购人" />
112
+          <el-select v-model="form.buyer" filterable clearable>
113
+            <el-option v-for="item in $store.state.user.userList" :key="item.userId" :label="item.nickName"
114
+              :value="item.userId">
115
+            </el-option>
116
+          </el-select>
186 117
         </el-form-item>
187 118
         <el-form-item label="备注" prop="remark">
188
-          <el-input v-model="form.remark" placeholder="请输入备注" />
119
+          <el-input v-model="form.remark" type="textarea" placeholder="请输入备注" />
189 120
         </el-form-item>
190 121
       </el-form>
191 122
       <div slot="footer" class="dialog-footer">
@@ -193,18 +124,25 @@
193 124
         <el-button @click="cancel">取 消</el-button>
194 125
       </div>
195 126
     </el-dialog>
127
+    <el-dialog title="选择耗材" :visible.sync="materialOpen" width="60%" append-to-body>
128
+      <choose-materal @confirmChoose="confirmMaterial"></choose-materal>
129
+    </el-dialog>
196 130
   </div>
197 131
 </template>
198 132
 
199 133
 <script>
200 134
 import { listMaterialBuy, getMaterialBuy, delMaterialBuy, addMaterialBuy, updateMaterialBuy } from "@/api/oa/material/materialBuy";
135
+import { listMaterial, getMaterial } from "@/api/oa/material/material";
136
+import ChooseMateral from './chooseMateral.vue';
201 137
 
202 138
 export default {
203 139
   name: "MaterialBuy",
140
+  components: { ChooseMateral },
204 141
   data() {
205 142
     return {
206 143
       // 遮罩层
207 144
       loading: true,
145
+      remoteLoading: true,
208 146
       // 选中数组
209 147
       ids: [],
210 148
       // 非单个禁用
@@ -237,7 +175,26 @@ export default {
237 175
       form: {},
238 176
       // 表单校验
239 177
       rules: {
240
-      }
178
+        materialId: [
179
+          { required: true, message: '请选择耗材', trigger: 'blur' }
180
+        ],
181
+        buyTime: [
182
+          { required: true, message: '请选择采购日期', trigger: 'change' }
183
+        ],
184
+        totalNum: [
185
+          { required: true, message: '请输入采购数量', trigger: 'blur' }
186
+        ],
187
+        price: [
188
+          { required: true, message: '请输入采购单价', trigger: 'blur' }
189
+        ],
190
+        buyer: [
191
+          { required: true, message: '请选择采购人', trigger: 'change' }
192
+        ]
193
+      },
194
+      materialOpen: false,
195
+      chooseM: {},
196
+      chooseMname: '',
197
+      materialList: []
241 198
     };
242 199
   },
243 200
   created() {
@@ -286,23 +243,26 @@ export default {
286 243
     // 多选框选中数据
287 244
     handleSelectionChange(selection) {
288 245
       this.ids = selection.map(item => item.buyId)
289
-      this.single = selection.length!==1
246
+      this.single = selection.length !== 1
290 247
       this.multiple = !selection.length
291 248
     },
292 249
     /** 新增按钮操作 */
293 250
     handleAdd() {
294 251
       this.reset();
295 252
       this.open = true;
296
-      this.title = "添加cmc耗材购买";
253
+      this.chooseM = {};
254
+      this.title = " 新增耗材购买信息";
255
+      this.computeAmount();
297 256
     },
298 257
     /** 修改按钮操作 */
299 258
     handleUpdate(row) {
300 259
       this.reset();
260
+      this.confirmMaterial(row.material)
301 261
       const buyId = row.buyId || this.ids
302 262
       getMaterialBuy(buyId).then(response => {
303 263
         this.form = response.data;
304 264
         this.open = true;
305
-        this.title = "修改cmc耗材购买";
265
+        this.title = "修改耗材购买信息";
306 266
       });
307 267
     },
308 268
     /** 提交按钮 */
@@ -328,18 +288,55 @@ export default {
328 288
     /** 删除按钮操作 */
329 289
     handleDelete(row) {
330 290
       const buyIds = row.buyId || this.ids;
331
-      this.$modal.confirm('是否确认删除cmc耗材购买编号为"' + buyIds + '"的数据项?').then(function() {
291
+      this.$modal.confirm('是否确认删除cmc耗材购买编号为"' + buyIds + '"的数据项?').then(function () {
332 292
         return delMaterialBuy(buyIds);
333 293
       }).then(() => {
334 294
         this.getList();
335 295
         this.$modal.msgSuccess("删除成功");
336
-      }).catch(() => {});
296
+      }).catch(() => { });
337 297
     },
338 298
     /** 导出按钮操作 */
339 299
     handleExport() {
340 300
       this.download('oa/materialBuy/export', {
341 301
         ...this.queryParams
342 302
       }, `materialBuy_${new Date().getTime()}.xlsx`)
303
+    },
304
+    computeAmount() {
305
+      let amount = (this.form.totalNum * this.form.price).toFixed(2);
306
+      console.log(amount);
307
+      this.$set(this.form, 'amount', amount);
308
+      this.$set(this.form, 'buyer', 17);
309
+    },
310
+    confirmMaterial(row) {
311
+      if (row) {
312
+        this.chooseM = row;
313
+        let brand = row.brand
314
+        let name = row.name
315
+        let series = row.series
316
+        if (brand && series) {
317
+          this.chooseMname = name + '-' + brand + '(' + series + ')'
318
+        } else if (brand == null && series != null) {
319
+          this.chooseMname = name + '(' + series + ')'
320
+        } else if (brand != null && series == null) {
321
+          this.chooseMname = name + '-' + brand
322
+        } else {
323
+          this.chooseMname = name
324
+        }
325
+        this.form.materialId = row.materialId;
326
+        this.materialOpen = false;
327
+        if (this.$refs.form)
328
+          this.$refs.form.validateField('materialId')
329
+      }
330
+    },
331
+    remoteMethod(val) {
332
+      listMaterial({
333
+        pageNum: 1,
334
+        pageSize: 20,
335
+        name: val
336
+      }).then(response => {
337
+        this.materialList = response.rows;
338
+        this.remoteLoading = false;
339
+      });
343 340
     }
344 341
   }
345 342
 };

+ 134
- 0
oa-ui/src/views/oa/material/chooseMateral.vue Datei anzeigen

@@ -0,0 +1,134 @@
1
+<template>
2
+  <div>
3
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
4
+      <el-form-item label="耗材名称" prop="name">
5
+        <el-input v-model="queryParams.name" placeholder="请输入耗材名称" clearable @keyup.enter.native="handleQuery" />
6
+      </el-form-item>
7
+      <el-form-item label="规格型号" prop="series">
8
+        <el-input v-model="queryParams.series" placeholder="请输入规格型号" clearable @keyup.enter.native="handleQuery" />
9
+      </el-form-item>
10
+      <el-form-item label="耗材品牌" prop="brand">
11
+        <el-input v-model="queryParams.brand" placeholder="请输入耗材品牌" clearable @keyup.enter.native="handleQuery" />
12
+      </el-form-item>
13
+      <el-form-item>
14
+        <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
15
+        <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
16
+      </el-form-item>
17
+    </el-form>
18
+
19
+    <el-table v-loading="loading" :data="materialList" highlight-current-row @row-dblclick="chooseClick">
20
+      <el-table-column label="耗材编号" align="center" prop="materialId" />
21
+      <el-table-column label="耗材名称" align="center" prop="name" />
22
+      <!-- <el-table-column label="耗材类别" align="center" prop="type" /> -->
23
+      <el-table-column label="规格型号" align="center" prop="series" />
24
+      <el-table-column label="耗材品牌" align="center" prop="brand" />
25
+      <el-table-column label="存放地点" align="center" prop="place" />
26
+      <el-table-column label="剩余数量" align="center" prop="remain" />
27
+      <el-table-column label="单位" align="center" prop="unit" />
28
+      <el-table-column label="备注" align="center" prop="remark" />
29
+    </el-table>
30
+
31
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
32
+      @pagination="getList" />
33
+    
34
+    <div class="text-center mt20">
35
+      <el-button type="primary">确认选择</el-button>
36
+      <el-button>清空选择</el-button>
37
+    </div>
38
+  </div>
39
+</template>
40
+
41
+<script>
42
+import { listMaterial, getMaterial, delMaterial, addMaterial, updateMaterial } from "@/api/oa/material/material";
43
+export default {
44
+  name: "Material",
45
+  data() {
46
+    return {
47
+      // 遮罩层
48
+      loading: true,
49
+      // 选中数组
50
+      ids: [],
51
+      // 非单个禁用
52
+      single: true,
53
+      // 非多个禁用
54
+      multiple: true,
55
+      // 显示搜索条件
56
+      showSearch: true,
57
+      // 总条数
58
+      total: 0,
59
+      // cmc耗材信息表格数据
60
+      materialList: [],
61
+      // 弹出层标题
62
+      title: "",
63
+      // 是否显示弹出层
64
+      open: false,
65
+      // 查询参数
66
+      queryParams: {
67
+        pageNum: 1,
68
+        pageSize: 10,
69
+        name: null,
70
+        type: null,
71
+        series: null,
72
+        brand: null,
73
+        place: null,
74
+        remain: null,
75
+        unit: null,
76
+      },
77
+      // 表单参数
78
+      form: {},
79
+      // 表单校验
80
+      rules: {
81
+      }
82
+    };
83
+  },
84
+  created() {
85
+    this.getList();
86
+  },
87
+  methods: {
88
+    /** 查询cmc耗材信息列表 */
89
+    getList() {
90
+      this.loading = true;
91
+      listMaterial(this.queryParams).then(response => {
92
+        this.materialList = response.rows;
93
+        this.total = response.total;
94
+        this.loading = false;
95
+      });
96
+    },
97
+    // 取消按钮
98
+    cancel() {
99
+      this.open = false;
100
+      this.reset();
101
+    },
102
+    // 表单重置
103
+    reset() {
104
+      this.form = {
105
+        materialId: null,
106
+        name: null,
107
+        type: null,
108
+        series: null,
109
+        brand: null,
110
+        place: null,
111
+        remain: null,
112
+        unit: null,
113
+        remark: null
114
+      };
115
+      this.resetForm("form");
116
+    },
117
+    /** 搜索按钮操作 */
118
+    handleQuery() {
119
+      this.queryParams.pageNum = 1;
120
+      this.getList();
121
+    },
122
+    /** 重置按钮操作 */
123
+    resetQuery() {
124
+      this.resetForm("queryForm");
125
+      this.handleQuery();
126
+    },
127
+    chooseClick(val){
128
+      this.$emit('confirmChoose',val)
129
+    }
130
+  }
131
+};
132
+</script>
133
+
134
+<style lang="scss" scoped></style>

+ 102
- 105
oa-ui/src/views/oa/material/give.vue Datei anzeigen

@@ -1,45 +1,34 @@
1 1
 <template>
2 2
   <div class="app-container">
3 3
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
4
-      <el-form-item label="耗材id" prop="materialId">
5
-        <el-input
6
-          v-model="queryParams.materialId"
7
-          placeholder="请输入耗材id"
8
-          clearable
9
-          @keyup.enter.native="handleQuery"
10
-        />
4
+      <el-form-item label="耗材名称" prop="materialId">
5
+        <el-select v-model="queryParams.materialId" filterable clearable remote reserve-keyword placeholder="请输入耗材名称"
6
+          :remote-method="remoteMethod" :loading="remoteLoading" style="width:300px;">
7
+          <el-option v-for="item in materialList" :key="item.materialId" :label="item.name" :value="item.materialId">
8
+            <span style="float: left">{{ item.name }}</span>
9
+            <span style="float: right; color: #8492a6; font-size: 13px">{{ item.brand }}</span>
10
+            <span style="float: right; color: #8492a6; font-size: 13px">{{ item.series }}</span>
11
+          </el-option>
12
+        </el-select>
11 13
       </el-form-item>
12 14
       <el-form-item label="发放时间" prop="giveTime">
13
-        <el-date-picker clearable
14
-          v-model="queryParams.giveTime"
15
-          type="date"
16
-          value-format="yyyy-MM-dd"
15
+        <el-date-picker clearable v-model="queryParams.giveTime" type="date" value-format="yyyy-MM-dd"
17 16
           placeholder="请选择发放时间">
18 17
         </el-date-picker>
19 18
       </el-form-item>
20 19
       <el-form-item label="领用人" prop="accepter">
21
-        <el-input
22
-          v-model="queryParams.accepter"
23
-          placeholder="请输入领用人"
24
-          clearable
25
-          @keyup.enter.native="handleQuery"
26
-        />
20
+        <el-select v-model="queryParams.accepter" filterable clearable @keyup.enter.native="handleQuery">
21
+          <el-option v-for="item in $store.state.user.userList" :key="item.userId" :label="item.nickName"
22
+            :value="item.userId">
23
+          </el-option>
24
+        </el-select>
27 25
       </el-form-item>
28 26
       <el-form-item label="领用部门" prop="useDept">
29
-        <el-input
30
-          v-model="queryParams.useDept"
31
-          placeholder="请输入领用部门"
32
-          clearable
33
-          @keyup.enter.native="handleQuery"
34
-        />
35
-      </el-form-item>
36
-      <el-form-item label="领用数量" prop="giveNum">
37
-        <el-input
38
-          v-model="queryParams.giveNum"
39
-          placeholder="请输入领用数量"
40
-          clearable
41
-          @keyup.enter.native="handleQuery"
42
-        />
27
+        <el-select v-model="queryParams.useDept" filterable clearable @keyup.enter.native="handleQuery">
28
+          <el-option v-for="item in $store.state.user.deptList" :key="item.deptId" :label="item.deptName"
29
+            :value="item.deptId">
30
+          </el-option>
31
+        </el-select>
43 32
       </el-form-item>
44 33
       <el-form-item>
45 34
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -49,46 +38,20 @@
49 38
 
50 39
     <el-row :gutter="10" class="mb8">
51 40
       <el-col :span="1.5">
52
-        <el-button
53
-          type="primary"
54
-          plain
55
-          icon="el-icon-plus"
56
-          size="mini"
57
-          @click="handleAdd"
58
-          v-hasPermi="['oa:materialGive:add']"
59
-        >新增</el-button>
41
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
42
+          v-hasPermi="['oa:materialGive:add']">新增</el-button>
60 43
       </el-col>
61 44
       <el-col :span="1.5">
62
-        <el-button
63
-          type="success"
64
-          plain
65
-          icon="el-icon-edit"
66
-          size="mini"
67
-          :disabled="single"
68
-          @click="handleUpdate"
69
-          v-hasPermi="['oa:materialGive:edit']"
70
-        >修改</el-button>
45
+        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
46
+          v-hasPermi="['oa:materialGive:edit']">修改</el-button>
71 47
       </el-col>
72 48
       <el-col :span="1.5">
73
-        <el-button
74
-          type="danger"
75
-          plain
76
-          icon="el-icon-delete"
77
-          size="mini"
78
-          :disabled="multiple"
79
-          @click="handleDelete"
80
-          v-hasPermi="['oa:materialGive:remove']"
81
-        >删除</el-button>
49
+        <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
50
+          v-hasPermi="['oa:materialGive:remove']">删除</el-button>
82 51
       </el-col>
83 52
       <el-col :span="1.5">
84
-        <el-button
85
-          type="warning"
86
-          plain
87
-          icon="el-icon-download"
88
-          size="mini"
89
-          @click="handleExport"
90
-          v-hasPermi="['oa:materialGive:export']"
91
-        >导出</el-button>
53
+        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
54
+          v-hasPermi="['oa:materialGive:export']">导出</el-button>
92 55
       </el-col>
93 56
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
94 57
     </el-row>
@@ -111,57 +74,47 @@
111 74
       <el-table-column label="备注" align="center" prop="remark" />
112 75
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
113 76
         <template slot-scope="scope">
114
-          <el-button
115
-            size="mini"
116
-            type="text"
117
-            icon="el-icon-edit"
118
-            @click="handleUpdate(scope.row)"
119
-            v-hasPermi="['oa:materialGive:edit']"
120
-          >修改</el-button>
121
-          <el-button
122
-            size="mini"
123
-            type="text"
124
-            icon="el-icon-delete"
125
-            @click="handleDelete(scope.row)"
126
-            v-hasPermi="['oa:materialGive:remove']"
127
-          >删除</el-button>
77
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
78
+            v-hasPermi="['oa:materialGive:edit']">修改</el-button>
79
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
80
+            v-hasPermi="['oa:materialGive:remove']">删除</el-button>
128 81
         </template>
129 82
       </el-table-column>
130 83
     </el-table>
131
-    
132
-    <pagination
133
-      v-show="total>0"
134
-      :total="total"
135
-      :page.sync="queryParams.pageNum"
136
-      :limit.sync="queryParams.pageSize"
137
-      @pagination="getList"
138
-    />
84
+
85
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
86
+      @pagination="getList" />
139 87
 
140 88
     <!-- 添加或修改cmc耗材发放对话框 -->
141 89
     <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
142 90
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
143
-        <el-form-item label="耗材id" prop="materialId">
144
-          <el-input v-model="form.materialId" placeholder="请输入耗材id" />
91
+        <el-form-item label="耗材名称" prop="materialId">
92
+          <el-tag v-if="chooseM.name">{{ chooseMname }}</el-tag>
93
+          <el-button type="primary" @click="materialOpen = true" size="mini">耗材选择</el-button>
145 94
         </el-form-item>
146 95
         <el-form-item label="发放时间" prop="giveTime">
147
-          <el-date-picker clearable
148
-            v-model="form.giveTime"
149
-            type="date"
150
-            value-format="yyyy-MM-dd"
151
-            placeholder="请选择发放时间">
96
+          <el-date-picker clearable v-model="form.giveTime" type="date" value-format="yyyy-MM-dd" placeholder="请选择发放时间">
152 97
           </el-date-picker>
153 98
         </el-form-item>
154 99
         <el-form-item label="领用人" prop="accepter">
155
-          <el-input v-model="form.accepter" placeholder="请输入领用人" />
100
+          <el-select v-model="form.accepter" filterable clearable>
101
+            <el-option v-for="item in $store.state.user.userList" :key="item.userId" :label="item.nickName"
102
+              :value="item.userId">
103
+            </el-option>
104
+          </el-select>
156 105
         </el-form-item>
157 106
         <el-form-item label="领用部门" prop="useDept">
158
-          <el-input v-model="form.useDept" placeholder="请输入领用部门" />
107
+        <el-select v-model="form.useDept" filterable clearable>
108
+          <el-option v-for="item in $store.state.user.deptList" :key="item.deptId" :label="item.deptName"
109
+            :value="item.deptId">
110
+          </el-option>
111
+        </el-select>
159 112
         </el-form-item>
160 113
         <el-form-item label="领用数量" prop="giveNum">
161
-          <el-input v-model="form.giveNum" placeholder="请输入领用数量" />
114
+          <el-input-number :controls="false" v-model="form.giveNum" placeholder="请输入领用数量" />
162 115
         </el-form-item>
163 116
         <el-form-item label="备注" prop="remark">
164
-          <el-input v-model="form.remark" placeholder="请输入备注" />
117
+          <el-input type="textarea" v-model="form.remark" placeholder="请输入备注" />
165 118
         </el-form-item>
166 119
       </el-form>
167 120
       <div slot="footer" class="dialog-footer">
@@ -169,14 +122,20 @@
169 122
         <el-button @click="cancel">取 消</el-button>
170 123
       </div>
171 124
     </el-dialog>
125
+    <el-dialog title="选择耗材" :visible.sync="materialOpen" width="60%" append-to-body>
126
+      <choose-materal @confirmChoose="confirmMaterial"></choose-materal>
127
+    </el-dialog>
172 128
   </div>
173 129
 </template>
174 130
 
175 131
 <script>
176 132
 import { listMaterialGive, getMaterialGive, delMaterialGive, addMaterialGive, updateMaterialGive } from "@/api/oa/material/materialGive";
133
+import { listMaterial, getMaterial } from "@/api/oa/material/material";
134
+import ChooseMateral from './chooseMateral.vue';
177 135
 
178 136
 export default {
179 137
   name: "MaterialGive",
138
+  components: { ChooseMateral },
180 139
   data() {
181 140
     return {
182 141
       // 遮罩层
@@ -211,7 +170,12 @@ export default {
211 170
       form: {},
212 171
       // 表单校验
213 172
       rules: {
214
-      }
173
+      },
174
+      remoteLoading: true,
175
+      materialList: [],
176
+      materialOpen: false,
177
+      chooseM: {},
178
+      chooseMname: '',
215 179
     };
216 180
   },
217 181
   created() {
@@ -258,23 +222,25 @@ export default {
258 222
     // 多选框选中数据
259 223
     handleSelectionChange(selection) {
260 224
       this.ids = selection.map(item => item.giveId)
261
-      this.single = selection.length!==1
225
+      this.single = selection.length !== 1
262 226
       this.multiple = !selection.length
263 227
     },
264 228
     /** 新增按钮操作 */
265 229
     handleAdd() {
266 230
       this.reset();
267 231
       this.open = true;
268
-      this.title = "添加cmc耗材发放";
232
+      this.chooseM = {};
233
+      this.title = "新增耗材发放记录";
269 234
     },
270 235
     /** 修改按钮操作 */
271 236
     handleUpdate(row) {
272 237
       this.reset();
238
+      this.confirmMaterial(row.material)
273 239
       const giveId = row.giveId || this.ids
274 240
       getMaterialGive(giveId).then(response => {
275 241
         this.form = response.data;
276 242
         this.open = true;
277
-        this.title = "修改cmc耗材发放";
243
+        this.title = "修改耗材发放记录";
278 244
       });
279 245
     },
280 246
     /** 提交按钮 */
@@ -300,19 +266,50 @@ export default {
300 266
     /** 删除按钮操作 */
301 267
     handleDelete(row) {
302 268
       const giveIds = row.giveId || this.ids;
303
-      this.$modal.confirm('是否确认删除cmc耗材发放编号为"' + giveIds + '"的数据项?').then(function() {
269
+      this.$modal.confirm('是否确认删除cmc耗材发放编号为"' + giveIds + '"的数据项?').then(function () {
304 270
         return delMaterialGive(giveIds);
305 271
       }).then(() => {
306 272
         this.getList();
307 273
         this.$modal.msgSuccess("删除成功");
308
-      }).catch(() => {});
274
+      }).catch(() => { });
309 275
     },
310 276
     /** 导出按钮操作 */
311 277
     handleExport() {
312 278
       this.download('oa/materialGive/export', {
313 279
         ...this.queryParams
314 280
       }, `materialGive_${new Date().getTime()}.xlsx`)
315
-    }
281
+    },
282
+    remoteMethod(val) {
283
+      listMaterial({
284
+        pageNum: 1,
285
+        pageSize: 20,
286
+        name: val
287
+      }).then(response => {
288
+        this.materialList = response.rows;
289
+        this.remoteLoading = false;
290
+      });
291
+    },
292
+    confirmMaterial(row) {
293
+      if (row) {
294
+        this.chooseM = row;
295
+        let brand = row.brand
296
+        let name = row.name
297
+        let series = row.series
298
+        if (brand && series) {
299
+          this.chooseMname = name + '-' + brand + '(' + series + ')'
300
+        } else if (brand == null && series != null) {
301
+          this.chooseMname = name + '(' + series + ')'
302
+        } else if (brand != null && series == null) {
303
+          this.chooseMname = name + '-' + brand
304
+        } else {
305
+          this.chooseMname = name
306
+        }
307
+        this.form.materialId = row.materialId;
308
+        this.materialOpen = false;
309
+        if (this.$refs.form)
310
+          this.$refs.form.validateField('materialId')
311
+      }
312
+    },
316 313
   }
317 314
 };
318 315
 </script>

+ 9
- 17
oa-ui/src/views/oa/material/index.vue Datei anzeigen

@@ -1,6 +1,14 @@
1 1
 <template>
2 2
   <div class="app-container">
3 3
     <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
4
+      <el-form-item label="耗材编号" prop="materialId">
5
+        <el-input
6
+          v-model="queryParams.materialId"
7
+          placeholder="请输入耗材编号"
8
+          clearable
9
+          @keyup.enter.native="handleQuery"
10
+        />
11
+      </el-form-item>
4 12
       <el-form-item label="耗材名称" prop="name">
5 13
         <el-input
6 14
           v-model="queryParams.name"
@@ -33,22 +41,6 @@
33 41
           @keyup.enter.native="handleQuery"
34 42
         />
35 43
       </el-form-item>
36
-      <el-form-item label="剩余数量" prop="remain">
37
-        <el-input
38
-          v-model="queryParams.remain"
39
-          placeholder="请输入剩余数量"
40
-          clearable
41
-          @keyup.enter.native="handleQuery"
42
-        />
43
-      </el-form-item>
44
-      <el-form-item label="单位" prop="unit">
45
-        <el-input
46
-          v-model="queryParams.unit"
47
-          placeholder="请输入单位"
48
-          clearable
49
-          @keyup.enter.native="handleQuery"
50
-        />
51
-      </el-form-item>
52 44
       <el-form-item>
53 45
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
54 46
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -103,7 +95,7 @@
103 95
 
104 96
     <el-table v-loading="loading" :data="materialList" @selection-change="handleSelectionChange">
105 97
       <el-table-column type="selection" width="55" align="center" />
106
-      <el-table-column label="耗材id" align="center" prop="materialId" />
98
+      <el-table-column label="耗材编号" align="center" prop="materialId" />
107 99
       <el-table-column label="耗材名称" align="center" prop="name" />
108 100
       <!-- <el-table-column label="耗材类别" align="center" prop="type" /> -->
109 101
       <el-table-column label="规格型号" align="center" prop="series" />

+ 32
- 4
oa-ui/src/views/oa/staff/index.vue Datei anzeigen

@@ -105,6 +105,8 @@
105 105
       selectDictLabel(dict.type.sys_user_salarylevel, scope.row.salaryLevel) }}
106 106
             </template>
107 107
           </el-table-column>
108
+          <el-table-column label="职务" align="center" key="postName" prop="postName" v-if="columns[17].visible"
109
+            :show-overflow-tooltip="true"></el-table-column>
108 110
           <el-table-column label="职称" align="center" key="titles" prop="titles" v-if="columns[6].visible"
109 111
             :show-overflow-tooltip="true">
110 112
             <template slot-scope="scope">
@@ -120,7 +122,12 @@
120 122
           <el-table-column label="政治面貌" align="center" key="politicalAffiliation"
121 123
             :formatter="formatterPoliticalAffiliation" prop="politicalAffiliation" v-if="columns[14].visible" />
122 124
           <el-table-column label="民族" align="center" key="ethnic" prop="ethnic" v-if="columns[15].visible" />
123
-
125
+          <el-table-column label="入职时间" align="center" key="entryDate" prop="entryDate" v-if="columns[16].visible"
126
+            :show-overflow-tooltip="true">
127
+            <template slot-scope="scope">
128
+              <span>{{ parseTime(scope.row.entryDate, '{y}-{m}-{d}') }}</span>
129
+            </template>
130
+          </el-table-column>
124 131
           <el-table-column label="合同签订" align="center" key="contractSign" prop="contractSign" v-if="columns[7].visible"
125 132
             :show-overflow-tooltip="true">
126 133
             <template slot-scope="scope">
@@ -278,8 +285,8 @@
278 285
                   :value="dict.value" />
279 286
               </el-select>
280 287
             </el-form-item>
281
-            <el-form-item label="岗位">
282
-              <el-select v-model="form.postIds" multiple placeholder="请选择岗位" style="width:100%;">
288
+            <el-form-item label="职务">
289
+              <el-select v-model="form.postIds" multiple placeholder="请选择职务" style="width:100%;">
283 290
                 <el-option v-for="item in postOptions" :key="item.postId" :label="item.postName" :value="item.postId"
284 291
                   :disabled="item.status == 1"></el-option>
285 292
               </el-select>
@@ -435,6 +442,8 @@ export default {
435 442
         { key: 13, label: `籍贯`, visible: false },
436 443
         { key: 14, label: `政治面貌`, visible: false },
437 444
         { key: 15, label: `民族`, visible: false },
445
+        { key: 16, label: `入职时间`, visible: true },
446
+        { key: 17, label: `职务`, visible: false },
438 447
       ],
439 448
       // 表单校验
440 449
       rules: {
@@ -465,7 +474,8 @@ export default {
465 474
         ]
466 475
       },
467 476
       certificates: '',
468
-      postSalary: ''
477
+      postSalary: '',
478
+      postData:''
469 479
     };
470 480
   },
471 481
   watch: {
@@ -487,6 +497,9 @@ export default {
487 497
       this.loading = true;
488 498
       listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => {
489 499
         this.userList = response.rows;
500
+        this.userList.forEach(user => {
501
+          this.getPostByUser(user)
502
+        })
490 503
         this.total = response.total;
491 504
         this.loading = false;
492 505
       }
@@ -801,6 +814,21 @@ export default {
801 814
     formatterPoliticalAffiliation(row) {
802 815
       let v = this.selectDictLabels(this.dict.type.sys_user_political, row.politicalAffiliation, ',')
803 816
       return v
817
+    },
818
+    async getPostByUser(row){
819
+      const userId = row.userId || this.ids;
820
+      let resData = await getUser(userId);
821
+      let postArr = [];
822
+      for (let post of resData.posts) {
823
+        for (let postid of resData.postIds) {
824
+          if (postid == post.postId) {
825
+            postArr.push(post.postName)
826
+          }
827
+        }
828
+      }
829
+      let postStr = postArr.join('/');
830
+      this.$set(row,'postName',postStr)
831
+      
804 832
     }
805 833
   }
806 834
 };

Laden…
Abbrechen
Speichern