@liuqiongqiong/vue-pages 1.0.5 → 1.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,884 +1,884 @@
1
- <template>
2
- <div class="app-container">
3
- <div class="filter-container">
4
- <el-form ref="listQuery" :inline="true" :model="listQuery" class="demo-form-inline">
5
- <!-- <el-form-item label="机构名称" prop="unitName">
6
- <el-input size="small" clearable v-model="listQuery.unitName" placeholder="请输入机构名称"></el-input>
7
- </el-form-item> -->
8
- <el-form-item label="机构名称" prop="name">
9
- <el-select v-model="listQuery.unitName" style="width: 100%" clearable filterable size="small"
10
- class="filter-item" placeholder="请选择机构名称">
11
- <el-option v-for="(item, index) in institutionList" :key="index" :label="item.label" :value="item.label" />
12
- </el-select>
13
- </el-form-item>
14
- <el-form-item label="计划流水号" prop="orderNo">
15
- <el-input v-model="listQuery.orderNo" size="small" clearable placeholder="请输入计划流水号" />
16
- </el-form-item>
17
- <!-- <el-form-item label="客户姓名" prop="familyName">
18
- <el-input size="small" clearable v-model="listQuery.familyName" placeholder="请输入客户姓名"></el-input>
19
- </el-form-item> -->
20
- <el-form-item label="客户姓名" prop="familyName">
21
- <el-select v-model="listQuery.familyName" style="width: 100%" clearable filterable size="small"
22
- class="filter-item" placeholder="请选择客户">
23
- <el-option v-for="(item, index) in customerData" :key="index" :label="item.label" :value="item.label" />
24
- </el-select>
25
- </el-form-item>
26
- <el-form-item label="身份证" prop="familyIdCode">
27
- <el-input v-model="listQuery.familyIdCode" size="small" clearable placeholder="请输入客户身份证号" />
28
- </el-form-item>
29
- <el-form-item label="失能等级">
30
- <el-select v-model="listQuery.familyLv" style="width: 100%" clearable filterable size="small"
31
- class="filter-item" placeholder="请选择失能等级">
32
- <el-option v-for="(item, index) in familyLvData" :key="index" :label="item.label" :value="item.value" />
33
- </el-select>
34
- </el-form-item>
35
- <el-form-item label="日期">
36
- <el-date-picker v-model="dateRange" clearable size="small" value-format="yyyy-MM-dd" type="daterange"
37
- range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" @change="changeTime" />
38
- </el-form-item>
39
- <el-form-item>
40
- <el-button size="small" type="primary" @click="onSubmit">查询</el-button>
41
- </el-form-item>
42
- <el-form-item>
43
- <el-button size="small" type="warning" @click="resetting('listQuery')">重置</el-button>
44
- </el-form-item>
45
- <!-- <el-form-item>
46
- <el-button size="small" type="success" @click="add">新增</el-button>
47
- </el-form-item> -->
48
- </el-form>
49
- </div>
50
- <el-table border height="65vh" :data="list" style="width: 100%">
51
- <el-table-column :label="'客户姓名'" align="center">
52
- <template slot-scope="{ row }">
53
- <span>{{ row.familyName }}</span>
54
- </template>
55
- </el-table-column>
56
- <el-table-column :label="'客户失能等级'" align="center" width="150">
57
- <template slot-scope="{ row }">
58
- <el-tag v-if="row.familyLv == '06'" type="success">重度失能ⅠⅠⅠ级</el-tag>
59
- <el-tag v-if="row.familyLv == '05'" type="success">重度失能ⅠⅠ级</el-tag>
60
- <el-tag v-if="row.familyLv == '04'" type="success">重度失能Ⅰ级</el-tag>
61
- <el-tag v-if="row.familyLv == '03'" type="success">中度失能</el-tag>
62
- <el-tag v-if="row.familyLv == '02'" type="success">轻度失能</el-tag>
63
- <el-tag v-if="row.familyLv == '01'" type="success">基本正常</el-tag>
64
- </template>
65
- </el-table-column>
66
- <el-table-column :label="'计划流水号'" align="center">
67
- <template slot-scope="{ row }">
68
- <span>{{ row.orderNo }}</span>
69
- </template>
70
- </el-table-column>
71
- <el-table-column :label="'计划开始时间'" align="center">
72
- <template slot-scope="{ row }">
73
- <span>{{ row.orderStartDate }}</span>
74
- </template>
75
- </el-table-column>
76
- <el-table-column :label="'护理机构'" align="center">
77
- <template slot-scope="{ row }">
78
- <span>{{ row.unitName ? row.unitName : "-" }}</span>
79
- </template>
80
- </el-table-column>
81
- <el-table-column :label="'机构类型'" align="center">
82
- <template slot-scope="{ row }">
83
- <!-- <el-tag size="medium">{{ row.type == '01' ? '入住机构护理' : row.type == '02' ? '机构上门护理' : row.type ==
84
- '03' ? '居家自主护理' : '-' }}</el-tag> -->
85
- <el-tag size="medium">{{
86
- row.type == "01"
87
- ? "上门护理机构"
88
- : row.type == "02"
89
- ? "养老机构"
90
- : row.type == "03"
91
- ? "医疗机构"
92
- : row.type == "04"
93
- ? "辅助器具机构"
94
- : "-"
95
- }}</el-tag>
96
- </template>
97
- </el-table-column>
98
- <el-table-column :label="'服务次数'" align="center">
99
- <template slot-scope="{ row }">
100
- <span>{{ row.realityNum }}次</span>
101
- </template>
102
- </el-table-column>
103
- <el-table-column :label="'服务时长'" align="center">
104
- <template slot-scope="{ row }">
105
- <span>{{ row.clockHour }}</span>
106
- </template>
107
- </el-table-column>
108
- <el-table-column :label="'服务合计费用'" align="center">
109
- <template slot-scope="{ row }">
110
- <span>{{ row.accountTotal }}元</span>
111
- </template>
112
- </el-table-column>
113
- <el-table-column :label="'长期护理保险总费用'" align="center">
114
- <template slot-scope="{ row }">
115
- <span>{{ row.sumAccount }}元</span>
116
- </template>
117
- </el-table-column>
118
- <el-table-column :label="'客户所需支付金额'" align="center">
119
- <template slot-scope="{ row }">
120
- <span>{{ row.userAccount }}元</span>
121
- </template>
122
- </el-table-column>
123
- <el-table-column :label="'基金所需支付金额'" align="center">
124
- <template slot-scope="{ row }">
125
- <span>{{ row.unitAccount }}元</span>
126
- </template>
127
- </el-table-column>
128
- <el-table-column :label="'操作'" align="center" width="300" class-name="small-padding fixed-width">
129
- <template slot-scope="{ row, $index }">
130
- <div class="buttonList">
131
- <!-- <el-button v-if="row.processStatus == '3'" size="mini" type="success" @click="settlement(row, $index)">
132
- 结算
133
- </el-button> -->
134
- <el-button v-if="row.processStatus == '1' && row.notUploadedNum != 0" size="mini" type="primary"
135
- @click="upload(row, $index)">
136
- 明细上传
137
- </el-button>
138
- <el-button v-if="row.processStatus == '1' && row.uploadNum != 0" size="mini" type="danger"
139
- @click="rectification(row, $index)">
140
- 冲正
141
- </el-button>
142
- <el-button v-if="row.processStatus == '1'" size="mini" type="primary" @click="declare(row, $index)">
143
- 个人费用预申报
144
- </el-button>
145
- <!-- <el-button v-if="row.processStatus == '3'" size="mini" type="primary"
146
- @click="chexiao(row, $index)">
147
- 个人申报撤销
148
- </el-button> -->
149
- <el-button size="mini" type="primary" @click="edit(row, $index)">
150
- 详情
151
- </el-button>
152
- </div>
153
- </template>
154
- </el-table-column>
155
- </el-table>
156
-
157
- <pagination v-show="total > 0" :total="total" :page.sync="listQuery.pageNo" :limit.sync="listQuery.size"
158
- @pagination="getList" />
159
- <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="textMap[dialogStatus]"
160
- :visible.sync="dialogFormVisible" width="40%">
161
- <el-form ref="dataForm" :rules="rules" :model="temp" label-position="right" label-width="170px">
162
- <el-row :gutter="20">
163
- <el-col :span="12">
164
- <el-form-item style="margin-bottom: 0px" label="客户姓名">
165
- <span>{{ temp.familyName }}</span>
166
- </el-form-item>
167
- </el-col>
168
- <el-col :span="12">
169
- <el-form-item style="margin-bottom: 0px" label="客户失能等级">
170
- <el-tag v-if="temp.familyLv == '06'" type="success">重度失能ⅠⅠⅠ级</el-tag>
171
- <el-tag v-if="temp.familyLv == '05'" type="success">重度失能ⅠⅠ级</el-tag>
172
- <el-tag v-if="temp.familyLv == '04'" type="success">重度失能Ⅰ级</el-tag>
173
- <el-tag v-if="temp.familyLv == '03'" type="success">中度失能</el-tag>
174
- <el-tag v-if="temp.familyLv == '02'" type="success">轻度失能</el-tag>
175
- <el-tag v-if="temp.familyLv == '01'" type="success">基本正常</el-tag>
176
- </el-form-item>
177
- </el-col>
178
- <el-col :span="12">
179
- <el-form-item style="margin-bottom: 0px" label="计划流水号">
180
- <span>{{ temp.orderNo }}</span>
181
- </el-form-item>
182
- </el-col>
183
- <el-col :span="12">
184
- <el-form-item style="margin-bottom: 0px" label="护理机构">
185
- <span>{{ temp.unitName }}</span>
186
- </el-form-item>
187
- </el-col>
188
- <el-col :span="12">
189
- <el-form-item style="margin-bottom: 0px" label="机构类型">
190
- <!-- <span>{{ temp.type == '01' ? '入住机构护理' : temp.type == '02' ? '机构上门护理' : temp.type == '03' ?
191
- '居家自主护理'
192
- : '-' }}</span> -->
193
- <el-tag size="medium">{{
194
- temp.type == "01"
195
- ? "上门护理机构"
196
- : temp.type == "02"
197
- ? "养老机构"
198
- : temp.type == "03"
199
- ? "医疗机构"
200
- : temp.type == "04"
201
- ? "辅助器具机构"
202
- : "-"
203
- }}</el-tag>
204
- </el-form-item>
205
- </el-col>
206
- <el-col :span="12">
207
- <el-form-item style="margin-bottom: 0px" label="开始时间">
208
- <span>{{ temp.orderStartDate }}</span>
209
- </el-form-item>
210
- </el-col>
211
- <el-col :span="12">
212
- <el-form-item style="margin-bottom: 0px" label="结束时间">
213
- <span>{{ temp.orderEndDate }}</span>
214
- </el-form-item>
215
- </el-col>
216
- <el-col :span="12">
217
- <el-form-item style="margin-bottom: 0px" label="长户险基金支付比例">
218
- <span>{{ temp.rate }}</span>
219
- </el-form-item>
220
- </el-col>
221
- <el-col :span="12">
222
- <el-form-item style="margin-bottom: 0px" label="每月最高限额">
223
- <span>{{ temp.maxAmount }}元</span>
224
- </el-form-item>
225
- </el-col>
226
- <el-col :span="12">
227
- <el-form-item style="margin-bottom: 0px" label="每月长户险基金最高限额">
228
- <span>{{ temp.unitMaxAmount }}元</span>
229
- </el-form-item>
230
- </el-col>
231
- <el-col :span="12">
232
- <el-form-item style="margin-bottom: 0px" label="每月最低服务次数">
233
- <span>{{ temp.minNum }}次</span>
234
- </el-form-item>
235
- </el-col>
236
- <el-col :span="12">
237
- <el-form-item style="margin-bottom: 0px" label="结算类型">
238
- <!-- <span>{{ temp.unitType == '1' ? '养老机构' : temp.unitType == '2' ? '护理机构' : '-' }}</span> -->
239
- <el-tag size="medium">{{
240
- temp.unitType == "01"
241
- ? "上门护理机构"
242
- : temp.unitType == "02"
243
- ? "养老机构"
244
- : temp.unitType == "03"
245
- ? "医疗机构"
246
- : temp.unitType == "04"
247
- ? "辅助器具机构"
248
- : "-"
249
- }}</el-tag>
250
- </el-form-item>
251
- </el-col>
252
- <el-col :span="12">
253
- <el-form-item style="margin-bottom: 0px" label="服务次数">
254
- <span>{{ temp.realityNum }}次</span>
255
- </el-form-item>
256
- </el-col>
257
-
258
- <el-col :span="12">
259
- <el-form-item style="margin-bottom: 0px" label="服务合计费用">
260
- <span>{{ temp.accountTotal }}元</span>
261
- </el-form-item>
262
- </el-col>
263
- <el-col :span="12">
264
- <el-form-item style="margin-bottom: 0px" label="长期护理保险总费用">
265
- <span>{{ temp.sumAccount }}元</span>
266
- </el-form-item>
267
- </el-col>
268
- <el-col :span="12">
269
- <el-form-item style="margin-bottom: 0px" label="客户所需支付金额">
270
- <span>{{ temp.userAccount }}元</span>
271
- </el-form-item>
272
- </el-col>
273
- <el-col :span="12">
274
- <el-form-item style="margin-bottom: 0px" label="基金所需支付金额">
275
- <span>{{ temp.unitAccount }}元</span>
276
- </el-form-item>
277
- </el-col>
278
- <el-col :span="24">
279
- <el-table v-loading="NursingLoading" border height="20vh" :data="NursingData" style="width: 100%">
280
- <el-table-column :label="'护理项'" align="center">
281
- <template slot-scope="{ row }">
282
- <span>{{ row.projectTitle }}</span>
283
- </template>
284
- </el-table-column>
285
- <el-table-column :label="'类别'" align="center">
286
- <template slot-scope="{ row }">
287
- <el-tag size="medium">{{
288
- row.projectType == "01"
289
- ? "生活照料"
290
- : row.projectType == "02"
291
- ? "精神慰藉"
292
- : row.projectType == "03"
293
- ? "安全巡视"
294
- : row.projectType == "04"
295
- ? "医疗护理"
296
- : row.projectType == "05"
297
- ? "康复护理"
298
- : row.projectType == "06"
299
- ? "辅助器具"
300
- : row.projectType == "07"
301
- ? "居家护理"
302
- : "-"
303
- }}</el-tag>
304
- </template>
305
- </el-table-column>
306
- <el-table-column :label="'预订次数'" align="center">
307
- <template slot-scope="{ row, $index }">
308
- <span>{{ row.num ? row.num : "-" }}</span>
309
- </template>
310
- </el-table-column>
311
- <el-table-column :label="'实际次数'" align="center">
312
- <template slot-scope="{ row, $index }">
313
- <span>{{ row.serviceNum ? row.serviceNum : "-" }}</span>
314
- </template>
315
- </el-table-column>
316
- <el-table-column :label="'机构上门护理价'" align="center">
317
- <template slot-scope="{ row }">
318
- <span>{{ row.projectPrice1 }}</span>
319
- </template>
320
- </el-table-column>
321
- <el-table-column :label="'预计汇总价格'" align="center">
322
- <template slot-scope="{ row }">
323
- <span>{{ expect(row.num, row.projectPrice1) }}</span>
324
- </template>
325
- </el-table-column>
326
- <el-table-column :label="'实际汇总价格'" align="center">
327
- <template slot-scope="{ row }">
328
- <span>{{ Summary(row.serviceNum, row.projectPrice1) }}</span>
329
- </template>
330
- </el-table-column>
331
- </el-table>
332
- </el-col>
333
- </el-row>
334
- </el-form>
335
- <div slot="footer" class="dialog-footer">
336
- <el-button type="primary" size="mini" @click="dialogFormVisible = false">
337
- 关 闭
338
- </el-button>
339
- <!-- <el-button size="mini" type="primary" @click="dialogStatus === 'create' ? createData() : updateData()">
340
- 确 认
341
- </el-button> -->
342
- </div>
343
- </el-dialog>
344
- <el-drawer :title="drawerTitle" :visible.sync="drawer" :direction="direction" :before-close="handleClose"
345
- :close-on-press-escape="false" :wrapper-closable="false" size="50%">
346
- <div style="display: flex; margin: 10px; justify-content: end">
347
- <el-button type="success" size="small" @click="buttonUpload">点击上传</el-button>
348
- </div>
349
- <el-table border :data="tableData" style="width: 100%" height="500" @selection-change="handleSelectionChange">
350
- <el-table-column type="selection" width="55" align="center" />
351
- <el-table-column :label="'计划流水号'" align="center" show-overflow-tooltip>
352
- <template slot-scope="{ row }">
353
- <span>{{ row.orderNo }}</span>
354
- </template>
355
- </el-table-column>
356
- <el-table-column :label="'护理员姓名'" align="center" show-overflow-tooltip>
357
- <template slot-scope="{ row }">
358
- <span>{{ row.personName }}</span>
359
- </template>
360
- </el-table-column>
361
- <el-table-column :label="'打卡地点'" align="center" show-overflow-tooltip>
362
- <template slot-scope="{ row }">
363
- <span>{{ row.address ? row.address : "-" }}</span>
364
- </template>
365
- </el-table-column>
366
- <el-table-column :label="'打卡日期'" align="center" show-overflow-tooltip>
367
- <template slot-scope="{ row }">
368
- <span>{{ row.clockDate ? row.clockDate : "-" }}</span>
369
- </template>
370
- </el-table-column>
371
- <el-table-column :label="'上班时间'" align="center" show-overflow-tooltip>
372
- <template slot-scope="{ row }">
373
- <span>{{ row.upCreateTime ? row.upCreateTime : "-" }}</span>
374
- </template>
375
- </el-table-column>
376
- <el-table-column :label="'下班时间'" align="center" show-overflow-tooltip>
377
- <template slot-scope="{ row }">
378
- <span>{{ row.dnCreateTime ? row.dnCreateTime : "-" }}</span>
379
- </template>
380
- </el-table-column>
381
- <el-table-column :label="'上班经纬度'" align="center">
382
- <template slot-scope="{ row }">
383
- <span>{{ row.lng }},{{ row.lat }}</span>
384
- </template>
385
- </el-table-column>
386
- <el-table-column :label="'下班经纬度'" align="center">
387
- <template slot-scope="{ row }">
388
- <span>{{ row.dnLng }},{{ row.dnLat }}</span>
389
- </template>
390
- </el-table-column>
391
- </el-table>
392
- </el-drawer>
393
- </div>
394
- </template>
395
-
396
- <script>
397
- import {
398
- WxSettlementAdvancePage,
399
- WxSettlementSave,
400
- WxClockPage,
401
- WxClockNeedCZ,
402
- WxSettlementSubmitOneClock,
403
- WxSettlementCzOne,
404
- WxSettlementGetProjectRealityNum,
405
- submitnurscaretaskinfoThird,
406
- revokepsnsetlThird,
407
- predeclareThird,
408
- clockList,
409
- correctTransactionThird
410
- } from '@/api/settlement'
411
- import { SysUnitAll, WxUserFamilyAll } from '@/api/institution'
412
- import Pagination from '@/components/Pagination' // secondary package based on el-pagination
413
- export default {
414
- name: 'Personnel',
415
- components: { Pagination },
416
- filters: {},
417
- data() {
418
- return {
419
- customerData: [],
420
- institutionList: [],
421
- // 抽屉打卡数据
422
- tableData: [],
423
- // 抽屉方向
424
- direction: 'rtl',
425
- // 抽屉开关
426
- drawer: false,
427
- // 抽屉标题
428
- drawerTitle: '',
429
- // 订单号
430
- orderNo: null,
431
- // 时间
432
- time: null,
433
- // 时间
434
- dateRange: null,
435
- // 失能等级
436
- familyLvData: [
437
- { label: '基本正常', value: '01' },
438
- { label: '轻度失能', value: '02' },
439
- { label: '中度失能', value: '03' },
440
- { label: '重度失能Ⅰ级', value: '04' },
441
- { label: '重度失能ⅠⅠ级', value: '05' },
442
- { label: '重度失能ⅠⅠⅠ级', value: '06' }
443
- ],
444
- NursingLoading: true,
445
- NursingData: [],
446
- dialogStatus: '',
447
- textMap: { update: '详情', create: '创建' },
448
- tableKey: 0,
449
- list: null,
450
- total: 0,
451
- listLoading: true,
452
- listQuery: {
453
- pageNo: 1,
454
- size: 20
455
- },
456
- dialogFormVisible: false,
457
- dialogPvVisible: false,
458
- rules: {
459
- status: [
460
- { required: true, message: '请选择审批状态', trigger: 'change' }
461
- ],
462
- name: [{ required: true, message: '请输入机构名称', trigger: 'blur' }],
463
- city: [{ required: true, message: '请输入行政区划', trigger: 'blur' }],
464
- county: [
465
- { required: true, message: '请输入所属辖区', trigger: 'blur' }
466
- ],
467
- address: [
468
- { required: true, message: '请输入护理机构地址', trigger: 'blur' }
469
- ],
470
- linkMan: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
471
- linkPhoneNumber: [
472
- { required: true, message: '请输入联系号码', trigger: 'blur' }
473
- ]
474
- },
475
- temp: {},
476
- downloadLoading: false,
477
- idList: []
478
- }
479
- },
480
- computed: {
481
- Summary() {
482
- return function (num, projectPrice1) {
483
- return (num * projectPrice1).toFixed(2)
484
- }
485
- },
486
- expect() {
487
- return function (num, projectPrice1) {
488
- return (num * projectPrice1).toFixed(2)
489
- }
490
- }
491
- },
492
- created() {
493
- this.getList()
494
- },
495
- methods: {
496
- changeTime(value) {
497
- if (!value || !Array.isArray(value) || value.length === 0) {
498
- this.listQuery.orderStartDate = ''
499
- this.listQuery.orderEndDate = ''
500
- return
501
- }
502
- this.listQuery.orderStartDate = value[0]
503
- this.listQuery.orderEndDate = value[1]
504
- // [this.listQuery.orderStartDate, this.listQuery.orderEndDate] = value;
505
- },
506
- handleClose() {
507
- this.drawer = false
508
- },
509
- handleSelectionChange(val) {
510
- this.idList = val.map((item) => {
511
- return item.id
512
- })
513
- },
514
- buttonUpload() {
515
- if (this.idList.length == 0) {
516
- return this.$notify({
517
- title: '提示',
518
- message: '请选择需要上传的打卡记录',
519
- type: 'warning',
520
- duration: 2000
521
- })
522
- }
523
- if (this.drawerTitle == '明细上传') {
524
- WxSettlementSubmitOneClock({ idList: this.idList }).then((res) => {
525
- if (res.status == 1) {
526
- this.$notify({
527
- title: '提示',
528
- message: res.info,
529
- type: 'success',
530
- duration: 2000
531
- })
532
- this.getList()
533
- WxClockPage({ orderNo: this.orderNo, pageNo: 1, size: 31 }).then(
534
- (res) => {
535
- this.tableData = res.result
536
- }
537
- )
538
- } else {
539
- this.$notify({
540
- title: '提示',
541
- message: res.info,
542
- type: 'error',
543
- duration: 2000
544
- })
545
- }
546
- })
547
- } else {
548
- WxSettlementCzOne({ idList: this.idList }).then((res) => {
549
- if (res.status == 1) {
550
- this.$notify({
551
- title: '提示',
552
- message: res.info,
553
- type: 'success',
554
- duration: 2000
555
- })
556
- this.getList()
557
- WxClockNeedCZ({ orderNo: this.orderNo, pageNo: 1, size: 31 }).then(
558
- (res) => {
559
- this.tableData = res.result
560
- }
561
- )
562
- } else {
563
- this.$notify({
564
- title: '提示',
565
- message: res.info,
566
- type: 'error',
567
- duration: 2000
568
- })
569
- }
570
- })
571
- }
572
- },
573
- // 明细上传
574
- upload(row) {
575
- this.drawerTitle = '明细上传'
576
- this.drawer = true
577
- this.idList = []
578
- this.orderNo = row.orderNo
579
- WxClockPage({ orderNo: this.orderNo, pageNo: 1, size: 31 }).then(
580
- (res) => {
581
- this.tableData = res.result
582
- }
583
- )
584
- // submitnurscaretaskinfoThird({ orderNo: row.orderNo }).then((res) => {
585
- // if (res.status == 1) {
586
- // this.getList()
587
- // clockList({ orderNo: row.orderNo }).then((res) => {
588
- // if (res.result) {
589
- // this.$notify({
590
- // title: '提示',
591
- // message: '该客户暂无护理明细,是否进行零结算,请谨慎操作!',
592
- // type: 'success',
593
- // duration: 5000
594
- // })
595
- // }
596
- // })
597
- // } else {
598
- // this.$notify({
599
- // title: '提示',
600
- // message: res.info,
601
- // type: 'error',
602
- // duration: 2000
603
- // })
604
- // }
605
- // })
606
- },
607
- // 明细冲正
608
- rectification(row) {
609
- this.drawerTitle = '明细冲正'
610
- this.drawer = true
611
- this.idList = []
612
- this.orderNo = row.orderNo
613
- WxClockNeedCZ({ orderNo: this.orderNo, pageNo: 1, size: 31 }).then(
614
- (res) => {
615
- this.tableData = res.result
616
- }
617
- )
618
- // correctTransactionThird({ orderNo: row.orderNo }).then((res) => {
619
- // if (res.status == 1) {
620
- // this.getList();
621
- // this.$notify({
622
- // title: "提示",
623
- // message: "冲正成功",
624
- // type: "success",
625
- // duration: 2000,
626
- // });
627
- // } else {
628
- // this.$notify({
629
- // title: "提示",
630
- // message: res.info,
631
- // type: "error",
632
- // duration: 2000,
633
- // });
634
- // }
635
- // });
636
- },
637
- // 申报
638
- async declare(row) {
639
- // let uploadNum = await WxClockPage({ orderNo: row.orderNo, pageNo: 1, size: 31 });
640
- // let notUploadedNum = await WxClockNeedCZ({ orderNo: row.orderNo, pageNo: 1, size: 31 });
641
- this.$confirm(
642
- `已上传${row.uploadNum}条,未上传${row.notUploadedNum}条 请确认后提交`,
643
- '提示',
644
- {
645
- confirmButtonText: '确定',
646
- cancelButtonText: '取消',
647
- type: 'warning'
648
- }
649
- )
650
- .then(() => {
651
- predeclareThird(row).then((res) => {
652
- if (res.status == 1) {
653
- this.getList()
654
- this.$notify({
655
- title: '提示',
656
- message: '申报成功',
657
- type: 'success',
658
- duration: 2000
659
- })
660
- } else {
661
- this.$notify({
662
- title: '提示',
663
- message: res.info,
664
- type: 'error',
665
- duration: 2000
666
- })
667
- }
668
- })
669
- })
670
- .catch(() => {
671
- this.$message({
672
- type: 'info',
673
- message: '已取消'
674
- })
675
- })
676
- },
677
- // 撤销
678
- chexiao(row) {
679
- revokepsnsetlThird({ trtSetlId: row.trtSetlId }).then((res) => {
680
- if (res.status == 1) {
681
- this.getList()
682
- this.$notify({
683
- title: '提示',
684
- message: '撤销成功',
685
- type: 'success',
686
- duration: 2000
687
- })
688
- } else {
689
- this.$notify({
690
- title: '提示',
691
- message: res.info,
692
- type: 'error',
693
- duration: 2000
694
- })
695
- }
696
- })
697
- },
698
- settlement(row) {
699
- this.$confirm('此操作将结算该条记录, 是否继续?', '提示', {
700
- confirmButtonText: '确定',
701
- cancelButtonText: '取消',
702
- type: 'warning'
703
- })
704
- .then(() => {
705
- WxSettlementSave(row).then((res) => {
706
- if (res.status == 1) {
707
- this.getList()
708
- this.$notify({
709
- title: res.info,
710
- message: '结算成功',
711
- type: 'success',
712
- duration: 2000
713
- })
714
- return
715
- }
716
- this.$notify({
717
- title: res.info,
718
- message: '结算失败',
719
- type: 'error',
720
- duration: 2000
721
- })
722
- })
723
- })
724
- .catch(() => {
725
- this.$message({
726
- type: 'info',
727
- message: '已取消结算'
728
- })
729
- })
730
- },
731
- getList() {
732
- this.listLoading = true
733
- WxSettlementAdvancePage(this.listQuery)
734
- .then((response) => {
735
- this.list = response.result.data
736
- this.total = response.result.count
737
- setTimeout(() => {
738
- this.listLoading = false
739
- }, 1.5 * 1000)
740
- })
741
- .catch((res) => {
742
- setTimeout(() => {
743
- this.listLoading = false
744
- }, 1.5 * 1000)
745
- })
746
- WxUserFamilyAll().then((res) => {
747
- this.customerData = res.result.map((item) => {
748
- return { label: item.name, value: item.name }
749
- })
750
- })
751
- SysUnitAll().then((res) => {
752
- this.institutionList = res.result.map((item) => {
753
- return { label: item.name, value: item.id }
754
- })
755
- })
756
- },
757
- handleModifyStatus(row, status) {
758
- this.$message({
759
- message: '操作成功',
760
- type: 'success'
761
- })
762
- row.status = status
763
- },
764
- resetting(formName) {
765
- this.$nextTick(() => {
766
- this.$refs[formName].resetFields()
767
- this.getList()
768
- })
769
- },
770
- add() {
771
- this.dialogStatus = 'create'
772
- this.dialogFormVisible = true
773
- this.temp = {}
774
- },
775
- onSubmit() {
776
- this.getList()
777
- },
778
- createData() {
779
- this.$refs['dataForm'].validate((valid) => {
780
- if (valid) {
781
- SysUnitSave(this.temp).then((res) => {
782
- if (res.status == 1) {
783
- this.dialogFormVisible = false
784
- this.getList()
785
- this.$notify({
786
- title: res.info,
787
- message: '新增成功',
788
- type: 'success',
789
- duration: 2000
790
- })
791
- return
792
- }
793
- this.$notify({
794
- title: res.info,
795
- message: '新增失败',
796
- type: 'error',
797
- duration: 2000
798
- })
799
- })
800
- }
801
- })
802
- },
803
- updateData() {
804
- this.$refs['dataForm'].validate((valid) => {
805
- if (valid) {
806
- WxClockApplyApprove(this.temp).then((res) => {
807
- if (res.status == 1) {
808
- this.dialogFormVisible = false
809
- this.getList()
810
- this.$notify({
811
- title: res.info,
812
- message: '更新成功',
813
- type: 'success',
814
- duration: 2000
815
- })
816
- return
817
- }
818
- this.$notify({
819
- title: res.info,
820
- message: '更新失败',
821
- type: 'error',
822
- duration: 2000
823
- })
824
- })
825
- }
826
- })
827
- },
828
- edit(row) {
829
- this.temp = row
830
- this.dialogStatus = 'update'
831
- this.dialogFormVisible = true
832
- this.NursingLoading = true
833
- console.log(this.temp)
834
- if (
835
- this.temp.projectRealityList &&
836
- this.temp.projectRealityList.length > 0
837
- ) {
838
- this.NursingData = this.temp.projectRealityList
839
- } else {
840
- this.NursingData = []
841
- }
842
- setTimeout(() => {
843
- this.NursingLoading = false
844
- }, 1.5 * 1000)
845
- },
846
- handleDelete(row, index) {
847
- WxClockApplyDel({ id: row.id }).then((res) => {
848
- if (res.status == 1) {
849
- this.getList()
850
- this.$notify({
851
- title: res.info,
852
- message: '删除成功',
853
- type: 'success',
854
- duration: 2000
855
- })
856
- return
857
- }
858
- this.$notify({
859
- title: res.info,
860
- message: '删除失败',
861
- type: 'error',
862
- duration: 2000
863
- })
864
- })
865
- // this.list.splice(index, 1)
866
- }
867
- }
868
- }
869
- </script>
870
- <style lang="scss" scoped>
871
- .el-col-12 {
872
- padding: 0 20px 0 0;
873
- }
874
-
875
- .buttonList {
876
- display: flex;
877
- flex-wrap: wrap;
878
- justify-content: center;
879
-
880
- button {
881
- margin: 5px;
882
- }
883
- }
884
- </style>
1
+ <template>
2
+ <div class="app-container">
3
+ <div class="filter-container">
4
+ <el-form ref="listQuery" :inline="true" :model="listQuery" class="demo-form-inline">
5
+ <!-- <el-form-item label="机构名称" prop="unitName">
6
+ <el-input size="small" clearable v-model="listQuery.unitName" placeholder="请输入机构名称"></el-input>
7
+ </el-form-item> -->
8
+ <el-form-item label="机构名称" prop="name">
9
+ <el-select v-model="listQuery.unitName" style="width: 100%" clearable filterable size="small"
10
+ class="filter-item" placeholder="请选择机构名称">
11
+ <el-option v-for="(item, index) in institutionList" :key="index" :label="item.label" :value="item.label" />
12
+ </el-select>
13
+ </el-form-item>
14
+ <el-form-item label="计划流水号" prop="orderNo">
15
+ <el-input v-model="listQuery.orderNo" size="small" clearable placeholder="请输入计划流水号" />
16
+ </el-form-item>
17
+ <!-- <el-form-item label="客户姓名" prop="familyName">
18
+ <el-input size="small" clearable v-model="listQuery.familyName" placeholder="请输入客户姓名"></el-input>
19
+ </el-form-item> -->
20
+ <el-form-item label="客户姓名" prop="familyName">
21
+ <el-select v-model="listQuery.familyName" style="width: 100%" clearable filterable size="small"
22
+ class="filter-item" placeholder="请选择客户">
23
+ <el-option v-for="(item, index) in customerData" :key="index" :label="item.label" :value="item.label" />
24
+ </el-select>
25
+ </el-form-item>
26
+ <el-form-item label="身份证" prop="familyIdCode">
27
+ <el-input v-model="listQuery.familyIdCode" size="small" clearable placeholder="请输入客户身份证号" />
28
+ </el-form-item>
29
+ <el-form-item label="失能等级">
30
+ <el-select v-model="listQuery.familyLv" style="width: 100%" clearable filterable size="small"
31
+ class="filter-item" placeholder="请选择失能等级">
32
+ <el-option v-for="(item, index) in familyLvData" :key="index" :label="item.label" :value="item.value" />
33
+ </el-select>
34
+ </el-form-item>
35
+ <el-form-item label="日期">
36
+ <el-date-picker v-model="dateRange" clearable size="small" value-format="yyyy-MM-dd" type="daterange"
37
+ range-separator="至" start-placeholder="开始时间" end-placeholder="结束时间" @change="changeTime" />
38
+ </el-form-item>
39
+ <el-form-item>
40
+ <el-button size="small" type="primary" @click="onSubmit">查询</el-button>
41
+ </el-form-item>
42
+ <el-form-item>
43
+ <el-button size="small" type="warning" @click="resetting('listQuery')">重置</el-button>
44
+ </el-form-item>
45
+ <!-- <el-form-item>
46
+ <el-button size="small" type="success" @click="add">新增</el-button>
47
+ </el-form-item> -->
48
+ </el-form>
49
+ </div>
50
+ <el-table border height="65vh" :data="list" style="width: 100%">
51
+ <el-table-column :label="'客户姓名'" align="center">
52
+ <template slot-scope="{ row }">
53
+ <span>{{ row.familyName }}</span>
54
+ </template>
55
+ </el-table-column>
56
+ <el-table-column :label="'客户失能等级'" align="center" width="150">
57
+ <template slot-scope="{ row }">
58
+ <el-tag v-if="row.familyLv == '06'" type="success">重度失能ⅠⅠⅠ级</el-tag>
59
+ <el-tag v-if="row.familyLv == '05'" type="success">重度失能ⅠⅠ级</el-tag>
60
+ <el-tag v-if="row.familyLv == '04'" type="success">重度失能Ⅰ级</el-tag>
61
+ <el-tag v-if="row.familyLv == '03'" type="success">中度失能</el-tag>
62
+ <el-tag v-if="row.familyLv == '02'" type="success">轻度失能</el-tag>
63
+ <el-tag v-if="row.familyLv == '01'" type="success">基本正常</el-tag>
64
+ </template>
65
+ </el-table-column>
66
+ <el-table-column :label="'计划流水号'" align="center">
67
+ <template slot-scope="{ row }">
68
+ <span>{{ row.orderNo }}</span>
69
+ </template>
70
+ </el-table-column>
71
+ <el-table-column :label="'计划开始时间'" align="center">
72
+ <template slot-scope="{ row }">
73
+ <span>{{ row.orderStartDate }}</span>
74
+ </template>
75
+ </el-table-column>
76
+ <el-table-column :label="'护理机构'" align="center">
77
+ <template slot-scope="{ row }">
78
+ <span>{{ row.unitName ? row.unitName : "-" }}</span>
79
+ </template>
80
+ </el-table-column>
81
+ <el-table-column :label="'机构类型'" align="center">
82
+ <template slot-scope="{ row }">
83
+ <!-- <el-tag size="medium">{{ row.type == '01' ? '入住机构护理' : row.type == '02' ? '机构上门护理' : row.type ==
84
+ '03' ? '居家自主护理' : '-' }}</el-tag> -->
85
+ <el-tag size="medium">{{
86
+ row.type == "01"
87
+ ? "上门护理机构"
88
+ : row.type == "02"
89
+ ? "养老机构"
90
+ : row.type == "03"
91
+ ? "医疗机构"
92
+ : row.type == "04"
93
+ ? "辅助器具机构"
94
+ : "-"
95
+ }}</el-tag>
96
+ </template>
97
+ </el-table-column>
98
+ <el-table-column :label="'服务次数'" align="center">
99
+ <template slot-scope="{ row }">
100
+ <span>{{ row.realityNum }}次</span>
101
+ </template>
102
+ </el-table-column>
103
+ <el-table-column :label="'服务时长'" align="center">
104
+ <template slot-scope="{ row }">
105
+ <span>{{ row.clockHour }}</span>
106
+ </template>
107
+ </el-table-column>
108
+ <el-table-column :label="'服务合计费用'" align="center">
109
+ <template slot-scope="{ row }">
110
+ <span>{{ row.accountTotal }}元</span>
111
+ </template>
112
+ </el-table-column>
113
+ <el-table-column :label="'长期护理保险总费用'" align="center">
114
+ <template slot-scope="{ row }">
115
+ <span>{{ row.sumAccount }}元</span>
116
+ </template>
117
+ </el-table-column>
118
+ <el-table-column :label="'客户所需支付金额'" align="center">
119
+ <template slot-scope="{ row }">
120
+ <span>{{ row.userAccount }}元</span>
121
+ </template>
122
+ </el-table-column>
123
+ <el-table-column :label="'基金所需支付金额'" align="center">
124
+ <template slot-scope="{ row }">
125
+ <span>{{ row.unitAccount }}元</span>
126
+ </template>
127
+ </el-table-column>
128
+ <el-table-column :label="'操作'" align="center" width="300" class-name="small-padding fixed-width">
129
+ <template slot-scope="{ row, $index }">
130
+ <div class="buttonList">
131
+ <!-- <el-button v-if="row.processStatus == '3'" size="mini" type="success" @click="settlement(row, $index)">
132
+ 结算
133
+ </el-button> -->
134
+ <el-button v-if="row.processStatus == '1' && row.notUploadedNum != 0" size="mini" type="primary"
135
+ @click="upload(row, $index)">
136
+ 明细上传
137
+ </el-button>
138
+ <el-button v-if="row.processStatus == '1' && row.uploadNum != 0" size="mini" type="danger"
139
+ @click="rectification(row, $index)">
140
+ 明细冲正
141
+ </el-button>
142
+ <el-button v-if="row.processStatus == '1'" size="mini" type="primary" @click="declare(row, $index)">
143
+ 个人费用预申报
144
+ </el-button>
145
+ <!-- <el-button v-if="row.processStatus == '3'" size="mini" type="primary"
146
+ @click="chexiao(row, $index)">
147
+ 个人申报撤销
148
+ </el-button> -->
149
+ <el-button size="mini" type="primary" @click="edit(row, $index)">
150
+ 详情
151
+ </el-button>
152
+ </div>
153
+ </template>
154
+ </el-table-column>
155
+ </el-table>
156
+
157
+ <pagination v-show="total > 0" :total="total" :page.sync="listQuery.pageNo" :limit.sync="listQuery.size"
158
+ @pagination="getList" />
159
+ <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :title="textMap[dialogStatus]"
160
+ :visible.sync="dialogFormVisible" width="40%">
161
+ <el-form ref="dataForm" :rules="rules" :model="temp" label-position="right" label-width="170px">
162
+ <el-row :gutter="20">
163
+ <el-col :span="12">
164
+ <el-form-item style="margin-bottom: 0px" label="客户姓名">
165
+ <span>{{ temp.familyName }}</span>
166
+ </el-form-item>
167
+ </el-col>
168
+ <el-col :span="12">
169
+ <el-form-item style="margin-bottom: 0px" label="客户失能等级">
170
+ <el-tag v-if="temp.familyLv == '06'" type="success">重度失能ⅠⅠⅠ级</el-tag>
171
+ <el-tag v-if="temp.familyLv == '05'" type="success">重度失能ⅠⅠ级</el-tag>
172
+ <el-tag v-if="temp.familyLv == '04'" type="success">重度失能Ⅰ级</el-tag>
173
+ <el-tag v-if="temp.familyLv == '03'" type="success">中度失能</el-tag>
174
+ <el-tag v-if="temp.familyLv == '02'" type="success">轻度失能</el-tag>
175
+ <el-tag v-if="temp.familyLv == '01'" type="success">基本正常</el-tag>
176
+ </el-form-item>
177
+ </el-col>
178
+ <el-col :span="12">
179
+ <el-form-item style="margin-bottom: 0px" label="计划流水号">
180
+ <span>{{ temp.orderNo }}</span>
181
+ </el-form-item>
182
+ </el-col>
183
+ <el-col :span="12">
184
+ <el-form-item style="margin-bottom: 0px" label="护理机构">
185
+ <span>{{ temp.unitName }}</span>
186
+ </el-form-item>
187
+ </el-col>
188
+ <el-col :span="12">
189
+ <el-form-item style="margin-bottom: 0px" label="机构类型">
190
+ <!-- <span>{{ temp.type == '01' ? '入住机构护理' : temp.type == '02' ? '机构上门护理' : temp.type == '03' ?
191
+ '居家自主护理'
192
+ : '-' }}</span> -->
193
+ <el-tag size="medium">{{
194
+ temp.type == "01"
195
+ ? "上门护理机构"
196
+ : temp.type == "02"
197
+ ? "养老机构"
198
+ : temp.type == "03"
199
+ ? "医疗机构"
200
+ : temp.type == "04"
201
+ ? "辅助器具机构"
202
+ : "-"
203
+ }}</el-tag>
204
+ </el-form-item>
205
+ </el-col>
206
+ <el-col :span="12">
207
+ <el-form-item style="margin-bottom: 0px" label="开始时间">
208
+ <span>{{ temp.orderStartDate }}</span>
209
+ </el-form-item>
210
+ </el-col>
211
+ <el-col :span="12">
212
+ <el-form-item style="margin-bottom: 0px" label="结束时间">
213
+ <span>{{ temp.orderEndDate }}</span>
214
+ </el-form-item>
215
+ </el-col>
216
+ <el-col :span="12">
217
+ <el-form-item style="margin-bottom: 0px" label="长户险基金支付比例">
218
+ <span>{{ temp.rate }}</span>
219
+ </el-form-item>
220
+ </el-col>
221
+ <el-col :span="12">
222
+ <el-form-item style="margin-bottom: 0px" label="每月最高限额">
223
+ <span>{{ temp.maxAmount }}元</span>
224
+ </el-form-item>
225
+ </el-col>
226
+ <el-col :span="12">
227
+ <el-form-item style="margin-bottom: 0px" label="每月长户险基金最高限额">
228
+ <span>{{ temp.unitMaxAmount }}元</span>
229
+ </el-form-item>
230
+ </el-col>
231
+ <el-col :span="12">
232
+ <el-form-item style="margin-bottom: 0px" label="每月最低服务次数">
233
+ <span>{{ temp.minNum }}次</span>
234
+ </el-form-item>
235
+ </el-col>
236
+ <el-col :span="12">
237
+ <el-form-item style="margin-bottom: 0px" label="结算类型">
238
+ <!-- <span>{{ temp.unitType == '1' ? '养老机构' : temp.unitType == '2' ? '护理机构' : '-' }}</span> -->
239
+ <el-tag size="medium">{{
240
+ temp.unitType == "01"
241
+ ? "上门护理机构"
242
+ : temp.unitType == "02"
243
+ ? "养老机构"
244
+ : temp.unitType == "03"
245
+ ? "医疗机构"
246
+ : temp.unitType == "04"
247
+ ? "辅助器具机构"
248
+ : "-"
249
+ }}</el-tag>
250
+ </el-form-item>
251
+ </el-col>
252
+ <el-col :span="12">
253
+ <el-form-item style="margin-bottom: 0px" label="服务次数">
254
+ <span>{{ temp.realityNum }}次</span>
255
+ </el-form-item>
256
+ </el-col>
257
+
258
+ <el-col :span="12">
259
+ <el-form-item style="margin-bottom: 0px" label="服务合计费用">
260
+ <span>{{ temp.accountTotal }}元</span>
261
+ </el-form-item>
262
+ </el-col>
263
+ <el-col :span="12">
264
+ <el-form-item style="margin-bottom: 0px" label="长期护理保险总费用">
265
+ <span>{{ temp.sumAccount }}元</span>
266
+ </el-form-item>
267
+ </el-col>
268
+ <el-col :span="12">
269
+ <el-form-item style="margin-bottom: 0px" label="客户所需支付金额">
270
+ <span>{{ temp.userAccount }}元</span>
271
+ </el-form-item>
272
+ </el-col>
273
+ <el-col :span="12">
274
+ <el-form-item style="margin-bottom: 0px" label="基金所需支付金额">
275
+ <span>{{ temp.unitAccount }}元</span>
276
+ </el-form-item>
277
+ </el-col>
278
+ <el-col :span="24">
279
+ <el-table v-loading="NursingLoading" border height="20vh" :data="NursingData" style="width: 100%">
280
+ <el-table-column :label="'护理项'" align="center">
281
+ <template slot-scope="{ row }">
282
+ <span>{{ row.projectTitle }}</span>
283
+ </template>
284
+ </el-table-column>
285
+ <el-table-column :label="'类别'" align="center">
286
+ <template slot-scope="{ row }">
287
+ <el-tag size="medium">{{
288
+ row.projectType == "01"
289
+ ? "生活照料"
290
+ : row.projectType == "02"
291
+ ? "精神慰藉"
292
+ : row.projectType == "03"
293
+ ? "安全巡视"
294
+ : row.projectType == "04"
295
+ ? "医疗护理"
296
+ : row.projectType == "05"
297
+ ? "康复护理"
298
+ : row.projectType == "06"
299
+ ? "辅助器具"
300
+ : row.projectType == "07"
301
+ ? "居家护理"
302
+ : "-"
303
+ }}</el-tag>
304
+ </template>
305
+ </el-table-column>
306
+ <el-table-column :label="'预订次数'" align="center">
307
+ <template slot-scope="{ row, $index }">
308
+ <span>{{ row.num ? row.num : "-" }}</span>
309
+ </template>
310
+ </el-table-column>
311
+ <el-table-column :label="'实际次数'" align="center">
312
+ <template slot-scope="{ row, $index }">
313
+ <span>{{ row.serviceNum ? row.serviceNum : "-" }}</span>
314
+ </template>
315
+ </el-table-column>
316
+ <el-table-column :label="'机构上门护理价'" align="center">
317
+ <template slot-scope="{ row }">
318
+ <span>{{ row.projectPrice1 }}</span>
319
+ </template>
320
+ </el-table-column>
321
+ <el-table-column :label="'预计汇总价格'" align="center">
322
+ <template slot-scope="{ row }">
323
+ <span>{{ expect(row.num, row.projectPrice1) }}</span>
324
+ </template>
325
+ </el-table-column>
326
+ <el-table-column :label="'实际汇总价格'" align="center">
327
+ <template slot-scope="{ row }">
328
+ <span>{{ Summary(row.serviceNum, row.projectPrice1) }}</span>
329
+ </template>
330
+ </el-table-column>
331
+ </el-table>
332
+ </el-col>
333
+ </el-row>
334
+ </el-form>
335
+ <div slot="footer" class="dialog-footer">
336
+ <el-button type="primary" size="mini" @click="dialogFormVisible = false">
337
+ 关 闭
338
+ </el-button>
339
+ <!-- <el-button size="mini" type="primary" @click="dialogStatus === 'create' ? createData() : updateData()">
340
+ 确 认
341
+ </el-button> -->
342
+ </div>
343
+ </el-dialog>
344
+ <el-drawer :title="drawerTitle" :visible.sync="drawer" :direction="direction" :before-close="handleClose"
345
+ :close-on-press-escape="false" :wrapper-closable="false" size="50%">
346
+ <div style="display: flex; margin: 10px; justify-content: end">
347
+ <el-button type="success" size="small" @click="buttonUpload">{{drawerTitle == '明细上传' ? '点击上传' : '点击冲正'}}</el-button>
348
+ </div>
349
+ <el-table border :data="tableData" style="width: 100%" height="500" @selection-change="handleSelectionChange">
350
+ <el-table-column type="selection" width="55" align="center" />
351
+ <el-table-column :label="'计划流水号'" align="center" show-overflow-tooltip>
352
+ <template slot-scope="{ row }">
353
+ <span>{{ row.orderNo }}</span>
354
+ </template>
355
+ </el-table-column>
356
+ <el-table-column :label="'护理员姓名'" align="center" show-overflow-tooltip>
357
+ <template slot-scope="{ row }">
358
+ <span>{{ row.personName }}</span>
359
+ </template>
360
+ </el-table-column>
361
+ <el-table-column :label="'打卡地点'" align="center" show-overflow-tooltip>
362
+ <template slot-scope="{ row }">
363
+ <span>{{ row.address ? row.address : "-" }}</span>
364
+ </template>
365
+ </el-table-column>
366
+ <el-table-column :label="'打卡日期'" align="center" show-overflow-tooltip>
367
+ <template slot-scope="{ row }">
368
+ <span>{{ row.clockDate ? row.clockDate : "-" }}</span>
369
+ </template>
370
+ </el-table-column>
371
+ <el-table-column :label="'上班时间'" align="center" show-overflow-tooltip>
372
+ <template slot-scope="{ row }">
373
+ <span>{{ row.upCreateTime ? row.upCreateTime : "-" }}</span>
374
+ </template>
375
+ </el-table-column>
376
+ <el-table-column :label="'下班时间'" align="center" show-overflow-tooltip>
377
+ <template slot-scope="{ row }">
378
+ <span>{{ row.dnCreateTime ? row.dnCreateTime : "-" }}</span>
379
+ </template>
380
+ </el-table-column>
381
+ <el-table-column :label="'上班经纬度'" align="center">
382
+ <template slot-scope="{ row }">
383
+ <span>{{ row.lng }},{{ row.lat }}</span>
384
+ </template>
385
+ </el-table-column>
386
+ <el-table-column :label="'下班经纬度'" align="center">
387
+ <template slot-scope="{ row }">
388
+ <span>{{ row.dnLng }},{{ row.dnLat }}</span>
389
+ </template>
390
+ </el-table-column>
391
+ </el-table>
392
+ </el-drawer>
393
+ </div>
394
+ </template>
395
+
396
+ <script>
397
+ import {
398
+ WxSettlementAdvancePage,
399
+ WxSettlementSave,
400
+ WxClockPage,
401
+ WxClockNeedCZ,
402
+ WxSettlementSubmitOneClock,
403
+ WxSettlementCzOne,
404
+ WxSettlementGetProjectRealityNum,
405
+ submitnurscaretaskinfoThird,
406
+ revokepsnsetlThird,
407
+ predeclareThird,
408
+ clockList,
409
+ correctTransactionThird
410
+ } from '@/api/settlement'
411
+ import { SysUnitAll, WxUserFamilyAll } from '@/api/institution'
412
+ import Pagination from '@/components/Pagination' // secondary package based on el-pagination
413
+ export default {
414
+ name: 'Personnel',
415
+ components: { Pagination },
416
+ filters: {},
417
+ data() {
418
+ return {
419
+ customerData: [],
420
+ institutionList: [],
421
+ // 抽屉打卡数据
422
+ tableData: [],
423
+ // 抽屉方向
424
+ direction: 'rtl',
425
+ // 抽屉开关
426
+ drawer: false,
427
+ // 抽屉标题
428
+ drawerTitle: '',
429
+ // 订单号
430
+ orderNo: null,
431
+ // 时间
432
+ time: null,
433
+ // 时间
434
+ dateRange: null,
435
+ // 失能等级
436
+ familyLvData: [
437
+ { label: '基本正常', value: '01' },
438
+ { label: '轻度失能', value: '02' },
439
+ { label: '中度失能', value: '03' },
440
+ { label: '重度失能Ⅰ级', value: '04' },
441
+ { label: '重度失能ⅠⅠ级', value: '05' },
442
+ { label: '重度失能ⅠⅠⅠ级', value: '06' }
443
+ ],
444
+ NursingLoading: true,
445
+ NursingData: [],
446
+ dialogStatus: '',
447
+ textMap: { update: '详情', create: '创建' },
448
+ tableKey: 0,
449
+ list: null,
450
+ total: 0,
451
+ listLoading: true,
452
+ listQuery: {
453
+ pageNo: 1,
454
+ size: 20
455
+ },
456
+ dialogFormVisible: false,
457
+ dialogPvVisible: false,
458
+ rules: {
459
+ status: [
460
+ { required: true, message: '请选择审批状态', trigger: 'change' }
461
+ ],
462
+ name: [{ required: true, message: '请输入机构名称', trigger: 'blur' }],
463
+ city: [{ required: true, message: '请输入行政区划', trigger: 'blur' }],
464
+ county: [
465
+ { required: true, message: '请输入所属辖区', trigger: 'blur' }
466
+ ],
467
+ address: [
468
+ { required: true, message: '请输入护理机构地址', trigger: 'blur' }
469
+ ],
470
+ linkMan: [{ required: true, message: '请输入联系人', trigger: 'blur' }],
471
+ linkPhoneNumber: [
472
+ { required: true, message: '请输入联系号码', trigger: 'blur' }
473
+ ]
474
+ },
475
+ temp: {},
476
+ downloadLoading: false,
477
+ idList: []
478
+ }
479
+ },
480
+ computed: {
481
+ Summary() {
482
+ return function (num, projectPrice1) {
483
+ return (num * projectPrice1).toFixed(2)
484
+ }
485
+ },
486
+ expect() {
487
+ return function (num, projectPrice1) {
488
+ return (num * projectPrice1).toFixed(2)
489
+ }
490
+ }
491
+ },
492
+ created() {
493
+ this.getList()
494
+ },
495
+ methods: {
496
+ changeTime(value) {
497
+ if (!value || !Array.isArray(value) || value.length === 0) {
498
+ this.listQuery.orderStartDate = ''
499
+ this.listQuery.orderEndDate = ''
500
+ return
501
+ }
502
+ this.listQuery.orderStartDate = value[0]
503
+ this.listQuery.orderEndDate = value[1]
504
+ // [this.listQuery.orderStartDate, this.listQuery.orderEndDate] = value;
505
+ },
506
+ handleClose() {
507
+ this.drawer = false
508
+ },
509
+ handleSelectionChange(val) {
510
+ this.idList = val.map((item) => {
511
+ return item.id
512
+ })
513
+ },
514
+ buttonUpload() {
515
+ if (this.idList.length == 0) {
516
+ return this.$notify({
517
+ title: '提示',
518
+ message: '请选择需要上传的打卡记录',
519
+ type: 'warning',
520
+ duration: 2000
521
+ })
522
+ }
523
+ if (this.drawerTitle == '明细上传') {
524
+ WxSettlementSubmitOneClock({ idList: this.idList }).then((res) => {
525
+ if (res.status == 1) {
526
+ this.$notify({
527
+ title: '提示',
528
+ message: res.info,
529
+ type: 'success',
530
+ duration: 2000
531
+ })
532
+ this.getList()
533
+ WxClockPage({ orderNo: this.orderNo, pageNo: 1, size: 31 }).then(
534
+ (res) => {
535
+ this.tableData = res.result
536
+ }
537
+ )
538
+ } else {
539
+ this.$notify({
540
+ title: '提示',
541
+ message: res.info,
542
+ type: 'error',
543
+ duration: 2000
544
+ })
545
+ }
546
+ })
547
+ } else {
548
+ WxSettlementCzOne({ idList: this.idList }).then((res) => {
549
+ if (res.status == 1) {
550
+ this.$notify({
551
+ title: '提示',
552
+ message: res.info,
553
+ type: 'success',
554
+ duration: 2000
555
+ })
556
+ this.getList()
557
+ WxClockNeedCZ({ orderNo: this.orderNo, pageNo: 1, size: 31 }).then(
558
+ (res) => {
559
+ this.tableData = res.result
560
+ }
561
+ )
562
+ } else {
563
+ this.$notify({
564
+ title: '提示',
565
+ message: res.info,
566
+ type: 'error',
567
+ duration: 2000
568
+ })
569
+ }
570
+ })
571
+ }
572
+ },
573
+ // 明细上传
574
+ upload(row) {
575
+ this.drawerTitle = '明细上传'
576
+ this.drawer = true
577
+ this.idList = []
578
+ this.orderNo = row.orderNo
579
+ WxClockPage({ orderNo: this.orderNo, pageNo: 1, size: 31 }).then(
580
+ (res) => {
581
+ this.tableData = res.result
582
+ }
583
+ )
584
+ // submitnurscaretaskinfoThird({ orderNo: row.orderNo }).then((res) => {
585
+ // if (res.status == 1) {
586
+ // this.getList()
587
+ // clockList({ orderNo: row.orderNo }).then((res) => {
588
+ // if (res.result) {
589
+ // this.$notify({
590
+ // title: '提示',
591
+ // message: '该客户暂无护理明细,是否进行零结算,请谨慎操作!',
592
+ // type: 'success',
593
+ // duration: 5000
594
+ // })
595
+ // }
596
+ // })
597
+ // } else {
598
+ // this.$notify({
599
+ // title: '提示',
600
+ // message: res.info,
601
+ // type: 'error',
602
+ // duration: 2000
603
+ // })
604
+ // }
605
+ // })
606
+ },
607
+ // 明细冲正
608
+ rectification(row) {
609
+ this.drawerTitle = '明细冲正'
610
+ this.drawer = true
611
+ this.idList = []
612
+ this.orderNo = row.orderNo
613
+ WxClockNeedCZ({ orderNo: this.orderNo, pageNo: 1, size: 31 }).then(
614
+ (res) => {
615
+ this.tableData = res.result
616
+ }
617
+ )
618
+ // correctTransactionThird({ orderNo: row.orderNo }).then((res) => {
619
+ // if (res.status == 1) {
620
+ // this.getList();
621
+ // this.$notify({
622
+ // title: "提示",
623
+ // message: "冲正成功",
624
+ // type: "success",
625
+ // duration: 2000,
626
+ // });
627
+ // } else {
628
+ // this.$notify({
629
+ // title: "提示",
630
+ // message: res.info,
631
+ // type: "error",
632
+ // duration: 2000,
633
+ // });
634
+ // }
635
+ // });
636
+ },
637
+ // 申报
638
+ async declare(row) {
639
+ // let uploadNum = await WxClockPage({ orderNo: row.orderNo, pageNo: 1, size: 31 });
640
+ // let notUploadedNum = await WxClockNeedCZ({ orderNo: row.orderNo, pageNo: 1, size: 31 });
641
+ this.$confirm(
642
+ `已上传${row.uploadNum}条,未上传${row.notUploadedNum}条 请确认后提交`,
643
+ '提示',
644
+ {
645
+ confirmButtonText: '确定',
646
+ cancelButtonText: '取消',
647
+ type: 'warning'
648
+ }
649
+ )
650
+ .then(() => {
651
+ predeclareThird(row).then((res) => {
652
+ if (res.status == 1) {
653
+ this.getList()
654
+ this.$notify({
655
+ title: '提示',
656
+ message: '申报成功',
657
+ type: 'success',
658
+ duration: 2000
659
+ })
660
+ } else {
661
+ this.$notify({
662
+ title: '提示',
663
+ message: res.info,
664
+ type: 'error',
665
+ duration: 2000
666
+ })
667
+ }
668
+ })
669
+ })
670
+ .catch(() => {
671
+ this.$message({
672
+ type: 'info',
673
+ message: '已取消'
674
+ })
675
+ })
676
+ },
677
+ // 撤销
678
+ chexiao(row) {
679
+ revokepsnsetlThird({ trtSetlId: row.trtSetlId }).then((res) => {
680
+ if (res.status == 1) {
681
+ this.getList()
682
+ this.$notify({
683
+ title: '提示',
684
+ message: '撤销成功',
685
+ type: 'success',
686
+ duration: 2000
687
+ })
688
+ } else {
689
+ this.$notify({
690
+ title: '提示',
691
+ message: res.info,
692
+ type: 'error',
693
+ duration: 2000
694
+ })
695
+ }
696
+ })
697
+ },
698
+ settlement(row) {
699
+ this.$confirm('此操作将结算该条记录, 是否继续?', '提示', {
700
+ confirmButtonText: '确定',
701
+ cancelButtonText: '取消',
702
+ type: 'warning'
703
+ })
704
+ .then(() => {
705
+ WxSettlementSave(row).then((res) => {
706
+ if (res.status == 1) {
707
+ this.getList()
708
+ this.$notify({
709
+ title: res.info,
710
+ message: '结算成功',
711
+ type: 'success',
712
+ duration: 2000
713
+ })
714
+ return
715
+ }
716
+ this.$notify({
717
+ title: res.info,
718
+ message: '结算失败',
719
+ type: 'error',
720
+ duration: 2000
721
+ })
722
+ })
723
+ })
724
+ .catch(() => {
725
+ this.$message({
726
+ type: 'info',
727
+ message: '已取消结算'
728
+ })
729
+ })
730
+ },
731
+ getList() {
732
+ this.listLoading = true
733
+ WxSettlementAdvancePage(this.listQuery)
734
+ .then((response) => {
735
+ this.list = response.result.data
736
+ this.total = response.result.count
737
+ setTimeout(() => {
738
+ this.listLoading = false
739
+ }, 1.5 * 1000)
740
+ })
741
+ .catch((res) => {
742
+ setTimeout(() => {
743
+ this.listLoading = false
744
+ }, 1.5 * 1000)
745
+ })
746
+ WxUserFamilyAll().then((res) => {
747
+ this.customerData = res.result.map((item) => {
748
+ return { label: item.name, value: item.name }
749
+ })
750
+ })
751
+ SysUnitAll().then((res) => {
752
+ this.institutionList = res.result.map((item) => {
753
+ return { label: item.name, value: item.id }
754
+ })
755
+ })
756
+ },
757
+ handleModifyStatus(row, status) {
758
+ this.$message({
759
+ message: '操作成功',
760
+ type: 'success'
761
+ })
762
+ row.status = status
763
+ },
764
+ resetting(formName) {
765
+ this.$nextTick(() => {
766
+ this.$refs[formName].resetFields()
767
+ this.getList()
768
+ })
769
+ },
770
+ add() {
771
+ this.dialogStatus = 'create'
772
+ this.dialogFormVisible = true
773
+ this.temp = {}
774
+ },
775
+ onSubmit() {
776
+ this.getList()
777
+ },
778
+ createData() {
779
+ this.$refs['dataForm'].validate((valid) => {
780
+ if (valid) {
781
+ SysUnitSave(this.temp).then((res) => {
782
+ if (res.status == 1) {
783
+ this.dialogFormVisible = false
784
+ this.getList()
785
+ this.$notify({
786
+ title: res.info,
787
+ message: '新增成功',
788
+ type: 'success',
789
+ duration: 2000
790
+ })
791
+ return
792
+ }
793
+ this.$notify({
794
+ title: res.info,
795
+ message: '新增失败',
796
+ type: 'error',
797
+ duration: 2000
798
+ })
799
+ })
800
+ }
801
+ })
802
+ },
803
+ updateData() {
804
+ this.$refs['dataForm'].validate((valid) => {
805
+ if (valid) {
806
+ WxClockApplyApprove(this.temp).then((res) => {
807
+ if (res.status == 1) {
808
+ this.dialogFormVisible = false
809
+ this.getList()
810
+ this.$notify({
811
+ title: res.info,
812
+ message: '更新成功',
813
+ type: 'success',
814
+ duration: 2000
815
+ })
816
+ return
817
+ }
818
+ this.$notify({
819
+ title: res.info,
820
+ message: '更新失败',
821
+ type: 'error',
822
+ duration: 2000
823
+ })
824
+ })
825
+ }
826
+ })
827
+ },
828
+ edit(row) {
829
+ this.temp = row
830
+ this.dialogStatus = 'update'
831
+ this.dialogFormVisible = true
832
+ this.NursingLoading = true
833
+ console.log(this.temp)
834
+ if (
835
+ this.temp.projectRealityList &&
836
+ this.temp.projectRealityList.length > 0
837
+ ) {
838
+ this.NursingData = this.temp.projectRealityList
839
+ } else {
840
+ this.NursingData = []
841
+ }
842
+ setTimeout(() => {
843
+ this.NursingLoading = false
844
+ }, 1.5 * 1000)
845
+ },
846
+ handleDelete(row, index) {
847
+ WxClockApplyDel({ id: row.id }).then((res) => {
848
+ if (res.status == 1) {
849
+ this.getList()
850
+ this.$notify({
851
+ title: res.info,
852
+ message: '删除成功',
853
+ type: 'success',
854
+ duration: 2000
855
+ })
856
+ return
857
+ }
858
+ this.$notify({
859
+ title: res.info,
860
+ message: '删除失败',
861
+ type: 'error',
862
+ duration: 2000
863
+ })
864
+ })
865
+ // this.list.splice(index, 1)
866
+ }
867
+ }
868
+ }
869
+ </script>
870
+ <style lang="scss" scoped>
871
+ .el-col-12 {
872
+ padding: 0 20px 0 0;
873
+ }
874
+
875
+ .buttonList {
876
+ display: flex;
877
+ flex-wrap: wrap;
878
+ justify-content: center;
879
+
880
+ button {
881
+ margin: 5px;
882
+ }
883
+ }
884
+ </style>