@liuqiongqiong/vue-pages 1.1.0 → 1.1.2

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@liuqiongqiong/vue-pages",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "type": "module",
5
5
  "description": "长护险管理系统业务页面组件库 - 包含结算管理、客户管理、护理管理等完整业务模块",
6
6
  "main": "dist/index.js",
package/src/index.js CHANGED
@@ -1,4 +1,10 @@
1
1
  // ==================== 导入业务页面组件 ====================
2
+
3
+ // 仿身假肢模块
4
+ import CustomerManagementIndex from "./pages/bionicProstheticLimb/CustomerManagement/index.vue";
5
+ import RealTimeSettlementIndex from "./pages/bionicProstheticLimb/RealTimeSettlement/index.vue";
6
+ import reconciliationIndex from "./pages/bionicProstheticLimb/reconciliation/index.vue";
7
+
2
8
  // 结算管理模块
3
9
  import SettlementIndex from "./pages/SettlementManagement/settlement/index.vue";
4
10
  import PreSettlementIndex from "./pages/SettlementManagement/PreSettlement/index.vue";
@@ -34,6 +40,11 @@ import * as utils from "./utils";
34
40
 
35
41
  // ==================== 业务页面组件列表 ====================
36
42
  const pages = {
43
+ // 仿身 prosthesis
44
+ CustomerManagementIndex,
45
+ RealTimeSettlementIndex,
46
+ reconciliationIndex,
47
+
37
48
  // 结算管理
38
49
  SettlementIndex,
39
50
  PreSettlementIndex,
@@ -92,6 +103,11 @@ export default {
92
103
 
93
104
  // ==================== 导出所有模块 ====================
94
105
  export {
106
+ // 仿身 prosthesis
107
+ CustomerManagementIndex,
108
+ RealTimeSettlementIndex,
109
+ reconciliationIndex,
110
+
95
111
  // 通用组件
96
112
  Pagination,
97
113
  PreviewFile,
@@ -111,7 +127,7 @@ export {
111
127
 
112
128
  // 护理员页面
113
129
  NurseIndex,
114
- //资质人员
130
+ // 资质人员
115
131
  newPersonenlIndex,
116
132
  // 机构页面
117
133
  InstitutionIndex,
@@ -121,5 +137,5 @@ export {
121
137
  SysRoleIndex,
122
138
 
123
139
  // 工具函数
124
- utils,
125
- };
140
+ utils
141
+ }
@@ -0,0 +1,499 @@
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="name">
6
+ <el-input v-model="listQuery.name" size="small" placeholder="请输入人员姓名" clearable />
7
+ </el-form-item>
8
+ <el-form-item label="证件号码" prop="idcode">
9
+ <el-input v-model="listQuery.idcode" size="small" placeholder="请输入证件号码" clearable />
10
+ </el-form-item>
11
+ <el-form-item>
12
+ <el-button size="small" type="primary" icon="el-icon-search" @click="handleFilter">查询</el-button>
13
+ <el-button size="small" icon="el-icon-refresh" @click="resetQuery">重置</el-button>
14
+ <el-button type="success" size="small" icon="el-icon-plus" @click="handleAdd">新增待申报记录</el-button>
15
+ <el-button type="warning" size="small" icon="el-icon-search" @click="handleQueryPending">待申报结算查询</el-button>
16
+ </el-form-item>
17
+ </el-form>
18
+
19
+ </div>
20
+
21
+ <el-table v-loading="listLoading" :data="list" border style="width: 100%" @selection-change="handleSelectionChange">
22
+ <el-table-column type="selection" width="55" align="center" />
23
+ <el-table-column label="机构名称" prop="unitName" align="center" show-overflow-tooltip min-width="120" />
24
+ <el-table-column label="证件类型" prop="idcodeType" align="center" show-overflow-tooltip min-width="100">
25
+ <template slot-scope="{ row }">
26
+ <span>{{ row.idcodeType === '01' ? '居民身份证' : row.idcodeType }}</span>
27
+ </template>
28
+ </el-table-column>
29
+ <el-table-column label="人员编号" prop="no" align="center" show-overflow-tooltip min-width="100" />
30
+ <el-table-column label="人员姓名" prop="name" align="center" show-overflow-tooltip min-width="90" />
31
+ <el-table-column label="证件号码" prop="idcode" align="center" show-overflow-tooltip min-width="160" />
32
+ <el-table-column label="参保地区划" prop="insuAdmdvs" align="center" show-overflow-tooltip min-width="100" />
33
+ <el-table-column label="安装日期" prop="instDate" align="center" show-overflow-tooltip min-width="100" />
34
+ <el-table-column label="总金额" prop="totalPric" align="center" width="90"></el-table-column>
35
+ <el-table-column label="结算状态" prop="status" align="center" width="90">
36
+ <template slot-scope="{ row }">
37
+ <el-tag :type="row.status === '1' ? 'success' : 'info'">{{ row.status === '1' ? '已结算' : '未结算' }}</el-tag>
38
+ </template>
39
+ </el-table-column>
40
+ <el-table-column label="结算时间" prop="setlTime" align="center" show-overflow-tooltip min-width="140" />
41
+ <el-table-column label="操作" align="center" width="280" fixed="right">
42
+ <template slot-scope="{ row }">
43
+ <div v-if="row.status !== '1'">
44
+ <el-button size="mini" type="primary" @click="handleEdit(row)">编辑</el-button>
45
+ <el-button size="mini" type="danger" @click="handleDelete(row)">删除</el-button>
46
+ <el-button size="mini" type="warning" @click="handleSettle(row)">结算</el-button>
47
+ <el-button size="mini" type="primary" @click="handleDetail(row)">详情</el-button>
48
+ </div>
49
+ <div v-else>
50
+ <el-button size="mini" type="primary" @click="handleDetail(row)">详情</el-button>
51
+ <el-button size="mini" type="danger" @click="handleRevoke(row)">撤销</el-button>
52
+ </div>
53
+ </template>
54
+ </el-table-column>
55
+ </el-table>
56
+
57
+ <pagination v-show="total > 0" :total="total" :page.sync="listQuery.pageNo" :limit.sync="listQuery.size"
58
+ @pagination="getList" />
59
+
60
+ <!-- 添加/编辑/详情对话框 -->
61
+ <el-dialog :title="dialogTitle" :visible.sync="dialogVisible" width="60%">
62
+ <el-form ref="dataForm" :model="temp" :rules="rules" label-width="120px">
63
+ <el-row :gutter="20">
64
+ <el-col :span="12">
65
+ <el-form-item label="身份证号码" prop="idcode">
66
+ <el-input v-if="!isReadOnly" v-model="temp.idcode" placeholder="请输入身份证号码" />
67
+ <span v-else>{{ temp.idcode }}</span>
68
+ </el-form-item>
69
+ </el-col>
70
+ </el-row>
71
+ <el-row :gutter="20">
72
+ <el-col :span="12">
73
+ <el-form-item label="人员姓名" prop="name">
74
+ <el-input v-if="!isReadOnly" v-model="temp.name" placeholder="请输入人员姓名" />
75
+ <span v-else>{{ temp.name }}</span>
76
+ </el-form-item>
77
+ </el-col>
78
+ <el-col :span="12">
79
+ <el-form-item label="人员编码" prop="no">
80
+ <el-input v-if="!isReadOnly" v-model="temp.no" placeholder="请输入人员编码" />
81
+ <span v-else>{{ temp.no }}</span>
82
+ </el-form-item>
83
+ </el-col>
84
+ </el-row>
85
+ <el-row :gutter="20">
86
+ <el-col :span="24">
87
+ <el-form-item label="参保地区划" prop="insuAdmdvs">
88
+ <div v-if="isReadOnly">浙江省 温州市 {{ getAreaName(temp.insuAdmdvs) }}</div>
89
+ <div v-else>
90
+ <el-input value="浙江省" disabled style="width: 120px; margin-right: 10px;" />
91
+ <el-input value="温州市" disabled style="width: 120px; margin-right: 10px;" />
92
+ <el-select v-model="temp.insuAdmdvs" placeholder="请选择区县" style="width: 200px">
93
+ <el-option v-for="item in areaOptions" :key="item.code" :label="item.name" :value="item.code" />
94
+ </el-select>
95
+ </div>
96
+ </el-form-item>
97
+ </el-col>
98
+ </el-row>
99
+
100
+ <el-row :gutter="20">
101
+ <el-col :span="12">
102
+ <el-form-item label="安装日期" prop="instDate">
103
+ <el-date-picker v-if="!isReadOnly" v-model="temp.instDate" type="datetime" placeholder="选择安装日期"
104
+ value-format="yyyy-MM-dd HH:mm:ss" style="width: 100%" />
105
+ <span v-else>{{ temp.instDate }}</span>
106
+ </el-form-item>
107
+ </el-col>
108
+ <el-col :span="12">
109
+ <el-form-item label="安装医生工号">
110
+ <el-input v-if="!isReadOnly" v-model="temp.instDrCodg" placeholder="请输入安装医生工号" />
111
+ <span v-else>{{ temp.instDrCodg }}</span>
112
+ </el-form-item>
113
+ </el-col>
114
+ <el-col :span="12">
115
+ <el-form-item label="医生姓名">
116
+ <el-input v-if="!isReadOnly" v-model="temp.instDrName" placeholder="请输入医生姓名" />
117
+ <span v-else>{{ temp.instDrName }}</span>
118
+ </el-form-item>
119
+ </el-col>
120
+ </el-row>
121
+ <el-row :gutter="20">
122
+ <el-col :span="24">
123
+ <el-form-item label="费用明细" prop="feeList">
124
+ <el-button v-if="!isReadOnly" type="primary" size="mini" icon="el-icon-plus" @click="addFeeItem"
125
+ style="margin-bottom: 10px;">添加费用</el-button>
126
+ <el-table :data="temp.feeList" border style="width: 100%">
127
+ <el-table-column label="项目单价">
128
+ <template slot-scope="{ row }">
129
+ <el-input-number v-if="!isReadOnly" v-model="row.pric" :min="0" :precision="2" size="small"
130
+ style="width: 100%" />
131
+ <span v-else>{{ row.pric }}</span>
132
+ </template>
133
+ </el-table-column>
134
+ <el-table-column label="项目数量">
135
+ <template slot-scope="{ row }">
136
+ <el-input-number v-if="!isReadOnly" v-model="row.cnt" :min="1" :precision="0" size="small"
137
+ style="width: 100%" />
138
+ <span v-else>{{ row.cnt }}</span>
139
+ </template>
140
+ </el-table-column>
141
+ <el-table-column label="操作" width="100" v-if="!isReadOnly">
142
+ <template slot-scope="{ row, $index }">
143
+ <el-button type="danger" size="mini" icon="el-icon-delete" circle @click="removeFeeItem($index)" />
144
+ </template>
145
+ </el-table-column>
146
+ </el-table>
147
+ </el-form-item>
148
+ </el-col>
149
+ </el-row>
150
+ </el-form>
151
+ <div slot="footer" class="dialog-footer">
152
+ <el-button @click="dialogVisible = false">{{ isReadOnly ? '关闭' : '取消' }}</el-button>
153
+ <el-button v-if="!isReadOnly" type="primary" @click="submitData">确定</el-button>
154
+ </div>
155
+ </el-dialog>
156
+ <!-- 待申报结算查询抽屉 -->
157
+ <el-drawer title="待申报结算查询" :visible.sync="drawerVisible" direction="rtl" size="60%">
158
+ <div style="padding: 20px;">
159
+ <el-form :inline="true" :model="drawerQuery">
160
+ <el-form-item label="结算月份">
161
+ <el-date-picker v-model="drawerQuery.setlMon" type="month" placeholder="选择月份" value-format="yyyy-MM"
162
+ size="small" />
163
+ </el-form-item>
164
+ <el-form-item>
165
+ <el-button type="primary" size="small" @click="handleDrawerQuery">查询</el-button>
166
+ </el-form-item>
167
+ </el-form>
168
+
169
+ <el-table v-loading="drawerLoading" :data="drawerList" border style="width: 100%">
170
+ <el-table-column label="长护辅助器具结算ID" prop="longtermAidsSetlId" align="center" show-overflow-tooltip
171
+ min-width="160" />
172
+ <el-table-column label="护理机构ID" prop="nurscareOrgNo" align="center" show-overflow-tooltip min-width="120" />
173
+ <el-table-column label="护理机构名称" prop="nursCareOrgName" align="center" show-overflow-tooltip min-width="150" />
174
+ <el-table-column label="人员姓名" prop="psnName" align="center" show-overflow-tooltip min-width="100" />
175
+ <el-table-column label="人员编码" prop="psnNo" align="center" show-overflow-tooltip min-width="120" />
176
+ <el-table-column label="证件号码" prop="certno" align="center" show-overflow-tooltip min-width="160" />
177
+ <el-table-column label="安装日期" prop="instDate" align="center" show-overflow-tooltip min-width="120" />
178
+ <el-table-column label="安装医生工号" prop="instDrCodg" align="center" show-overflow-tooltip min-width="120" />
179
+ <el-table-column label="安装医生姓名" prop="instDrName" align="center" show-overflow-tooltip min-width="120" />
180
+ <el-table-column label="费用总额" prop="feeSumamt" align="center" show-overflow-tooltip min-width="100" />
181
+ <el-table-column label="基金支付" prop="fundPay" align="center" show-overflow-tooltip min-width="100" />
182
+ <el-table-column label="待遇类型ID" prop="mdtrtId" align="center" show-overflow-tooltip min-width="120" />
183
+ <el-table-column label="操作" align="center" width="120" fixed="right">
184
+ <template slot-scope="{ row }">
185
+ <el-button size="mini" type="primary" @click="handleViewDetail(row)">查看明细</el-button>
186
+ </template>
187
+ </el-table-column>
188
+ </el-table>
189
+
190
+ <pagination v-show="drawerTotal > 0" :total="drawerTotal" :page.sync="drawerQuery.pageNo"
191
+ :limit.sync="drawerQuery.size" @pagination="getDrawerList" />
192
+ </div>
193
+ </el-drawer>
194
+
195
+ <!-- 结算明细对话框 -->
196
+ <el-dialog title="结算明细" :visible.sync="detailDialogVisible" width="60%" append-to-body>
197
+ <el-table v-loading="detailLoading" :data="detailList" border style="width: 100%">
198
+ <el-table-column label="医院费用明细id" prop="feeId" align="center" show-overflow-tooltip />
199
+ <el-table-column label="项目编码" prop="chrgitemCode" align="center" show-overflow-tooltip />
200
+ <el-table-column label="项目名称" prop="chrgitemName" align="center" show-overflow-tooltip />
201
+ <el-table-column label="项目数量" prop="cnt" align="center" />
202
+ <el-table-column label="项目单价" prop="pric" align="center" />
203
+ </el-table>
204
+ <pagination v-show="detailTotal > 0" :total="detailTotal" :page.sync="detailQuery.pageNo"
205
+ :limit.sync="detailQuery.size" @pagination="getDetailList" />
206
+ <div slot="footer" class="dialog-footer">
207
+ <el-button @click="detailDialogVisible = false">关闭</el-button>
208
+ </div>
209
+ </el-dialog>
210
+ </div>
211
+ </template>
212
+
213
+ <script>
214
+ import Pagination from "@/components/Pagination";
215
+ import {
216
+ ProsthesisSettlementPage,
217
+ ProsthesisSettlementSave,
218
+ ProsthesisSettlementDetail,
219
+ ProsthesisSettlementDeclare,
220
+ ProsthesisSettlementRevoke,
221
+ queryNoSettlement
222
+ } from "@/api/ProsthesisSettlement";
223
+ import pcaData from "@/utils/pca222.json";
224
+
225
+ export default {
226
+ name: "RealTimeSettlement",
227
+ components: { Pagination },
228
+ data() {
229
+ return {
230
+ list: [],
231
+ total: 0,
232
+ listLoading: false,
233
+ listQuery: {
234
+ pageNo: 1,
235
+ size: 10,
236
+ name: "",
237
+ idcode: ""
238
+ },
239
+ multipleSelection: [],
240
+ dialogVisible: false,
241
+ dialogTitle: "",
242
+ isReadOnly: false,
243
+ temp: {
244
+ idcode: "",
245
+ name: "",
246
+ no: "",
247
+ insuAdmdvs: "",
248
+ feeList: [],
249
+ instDate: "",
250
+ instDrCodg: ""
251
+ },
252
+ rules: {
253
+ idType: [{ required: true, message: "请选择证件类型", trigger: "change" }],
254
+ idcode: [{ required: true, message: "请输入证件号码", trigger: "blur" }],
255
+ name: [{ required: true, message: "请输入人员姓名", trigger: "blur" }],
256
+ no: [{ required: true, message: "请输入人员编码", trigger: "blur" }],
257
+ insuAdmdvs: [{ required: true, message: "请选择参保地区划", trigger: "change" }],
258
+ instDate: [{ required: true, message: "请选择安装日期", trigger: "change" }],
259
+ instDrCodg: [{ required: true, message: "请输入安装医生工号", trigger: "blur" }],
260
+ instDrName: [{ required: true, message: "请输入安装医生姓名", trigger: "blur" }],
261
+ },
262
+ areaOptions: [],
263
+ // 抽屉相关数据
264
+ drawerVisible: false,
265
+ drawerLoading: false,
266
+ drawerList: [],
267
+ drawerTotal: 0,
268
+ drawerQuery: {
269
+ pageNo: 1,
270
+ size: 10,
271
+ setlMon: ""
272
+ },
273
+ // 明细弹窗相关数据
274
+ detailDialogVisible: false,
275
+ detailLoading: false,
276
+ detailList: [],
277
+ detailTotal: 0,
278
+ detailQuery: {
279
+ longtermAidsSetlId: "",
280
+ pageNo: 1,
281
+ size: 20
282
+ }
283
+ };
284
+ },
285
+ created() {
286
+ this.initAreaOptions();
287
+ this.getList();
288
+ },
289
+ methods: {
290
+ initAreaOptions() {
291
+ // 找到浙江省(33) -> 温州市(3303)
292
+ const zhejiang = pcaData.find(item => item.code === '33');
293
+ if (zhejiang && zhejiang.children) {
294
+ const wenzhou = zhejiang.children.find(item => item.code === '3303');
295
+ if (wenzhou && wenzhou.children) {
296
+ this.areaOptions = wenzhou.children;
297
+ }
298
+ }
299
+ },
300
+ getAreaName(code) {
301
+ if (!code) return '';
302
+ const area = this.areaOptions.find(item => item.code === code);
303
+ return area ? area.name : code;
304
+ },
305
+ getList() {
306
+ this.listLoading = true;
307
+ ProsthesisSettlementPage(this.listQuery).then(response => {
308
+ console.log(response)
309
+ this.list = response.result.data;
310
+ this.total = response.result.count;
311
+ this.listLoading = false;
312
+ }).catch(() => {
313
+ this.listLoading = false;
314
+ });
315
+ },
316
+ handleFilter() {
317
+ this.listQuery.pageNo = 1;
318
+ this.getList();
319
+ },
320
+ resetQuery() {
321
+ this.$refs.listQuery.resetFields();
322
+ this.handleFilter();
323
+ },
324
+ handleSelectionChange(val) {
325
+ this.multipleSelection = val;
326
+ },
327
+ handleAdd() {
328
+ this.temp = { name: "", feeList: [] };
329
+ this.dialogTitle = "添加";
330
+ this.isReadOnly = false;
331
+ this.dialogVisible = true;
332
+ this.$nextTick(() => {
333
+ this.$refs.dataForm.clearValidate();
334
+ });
335
+ },
336
+ addFeeItem() {
337
+ this.temp.feeList.push({
338
+ feeType: "",
339
+ pric: 0,
340
+ cnt: 1
341
+ });
342
+ },
343
+ removeFeeItem(index) {
344
+ this.temp.feeList.splice(index, 1);
345
+ },
346
+ handleBatchDelete() {
347
+ if (this.multipleSelection.length === 0) {
348
+ this.$message.warning("请选择要删除的数据");
349
+ return;
350
+ }
351
+ this.$confirm("确认删除选中的数据吗?", "提示", {
352
+ confirmButtonText: "确定",
353
+ cancelButtonText: "取消",
354
+ type: "warning"
355
+ }).then(() => {
356
+ this.$message.success("删除成功");
357
+ this.getList();
358
+ });
359
+ },
360
+ handleQueryPending() {
361
+ this.drawerVisible = true;
362
+ this.drawerQuery.pageNo = 1;
363
+ this.getDrawerList();
364
+ },
365
+ handleDrawerQuery() {
366
+ this.drawerQuery.pageNo = 1;
367
+ this.getDrawerList();
368
+ },
369
+ getDrawerList() {
370
+ this.drawerLoading = true;
371
+ const params = {
372
+ longtermDclaRea: "",
373
+ setlMon: this.drawerQuery.setlMon,
374
+ pageNum: this.drawerQuery.pageNo,
375
+ pageSize: this.drawerQuery.size
376
+ };
377
+ queryNoSettlement(params).then(response => {
378
+ console.log(response)
379
+ this.drawerList = response.result.data;
380
+ this.drawerTotal = response.result.count;
381
+ this.drawerLoading = false;
382
+ }).catch(() => {
383
+ this.drawerLoading = false;
384
+ });
385
+ },
386
+ handleViewDetail(row) {
387
+ this.detailQuery.longtermAidsSetlId = row.longtermAidsSetlId;
388
+ this.detailQuery.pageNo = 1;
389
+ this.detailQuery.size = 20;
390
+ this.detailDialogVisible = true;
391
+ this.getDetailList();
392
+ },
393
+ getDetailList() {
394
+ this.detailLoading = true;
395
+ const params = {
396
+ longtermDclaRea: "",
397
+ longtermAidsSetlId: this.detailQuery.longtermAidsSetlId,
398
+ pageNum: this.detailQuery.pageNo,
399
+ pageSize: this.detailQuery.size
400
+ };
401
+ queryNoSettlement(params).then(response => {
402
+ console.log(response)
403
+ // 假设返回的数据直接是列表,或者是包含列表的对象
404
+ // 根据通常习惯,如果是分页查询,可能是 response.data.list
405
+ // 如果是详情,可能是 response.data.feeList
406
+ // 这里暂时假设 response.data 就是列表
407
+ this.detailList = Array.isArray(response.result) ? response.result : (response.result.data || []);
408
+ this.detailTotal = response.result.total || (this.detailList.length);
409
+ this.detailLoading = false;
410
+ }).catch(() => {
411
+ this.detailLoading = false;
412
+ });
413
+ },
414
+ handleEdit(row) {
415
+ this.temp = Object.assign({}, row); // 先赋值 row,避免弹窗空白
416
+ this.dialogTitle = "编辑";
417
+ this.isReadOnly = false;
418
+ this.dialogVisible = true;
419
+ ProsthesisSettlementDetail(row.id).then(response => {
420
+ if (response.result) {
421
+ this.temp = Object.assign({}, response.result);
422
+ // 确保 feeList 是数组,如果没有返回则为空数组
423
+ if (!this.temp.feeList) {
424
+ this.$set(this.temp, 'feeList', []);
425
+ }
426
+ }
427
+ });
428
+ this.$nextTick(() => {
429
+ this.$refs.dataForm.clearValidate();
430
+ });
431
+ },
432
+ handleDelete(row) {
433
+ this.$confirm("确认删除该条数据吗?", "提示", {
434
+ confirmButtonText: "确定",
435
+ cancelButtonText: "取消",
436
+ type: "warning"
437
+ }).then(() => {
438
+ this.$message.success("删除成功");
439
+ this.getList();
440
+ });
441
+ },
442
+ handleSettle(row) {
443
+ this.$confirm("确认结算吗?", "提示", {
444
+ confirmButtonText: "确定",
445
+ cancelButtonText: "取消",
446
+ type: "warning"
447
+ }).then(() => {
448
+ ProsthesisSettlementDeclare(row.id).then(() => {
449
+ this.$message.success("结算成功");
450
+ this.getList();
451
+ });
452
+ });
453
+ },
454
+ handleRevoke(row) {
455
+ this.$prompt('请输入撤销原因', '提示', {
456
+ confirmButtonText: '确定',
457
+ cancelButtonText: '取消',
458
+ }).then(({ value }) => {
459
+ ProsthesisSettlementRevoke({ id: row.id, reason: value }).then(() => {
460
+ this.$message.success("撤销成功");
461
+ this.getList();
462
+ });
463
+ });
464
+ },
465
+ handleDetail(row) {
466
+ this.temp = Object.assign({}, row);
467
+ this.dialogTitle = "详情";
468
+ this.isReadOnly = true;
469
+ this.dialogVisible = true;
470
+ ProsthesisSettlementDetail(row.id).then(response => {
471
+ if (response.result) {
472
+ this.temp = Object.assign({}, response.result);
473
+ if (!this.temp.feeList) {
474
+ this.$set(this.temp, 'feeList', []);
475
+ }
476
+ }
477
+ });
478
+ this.$nextTick(() => {
479
+ this.$refs.dataForm.clearValidate();
480
+ });
481
+ },
482
+ submitData() {
483
+ this.$refs.dataForm.validate((valid) => {
484
+ if (valid) {
485
+ ProsthesisSettlementSave(this.temp).then(() => {
486
+ this.$message.success(this.dialogTitle + "成功");
487
+ this.dialogVisible = false;
488
+ this.getList();
489
+ });
490
+ }
491
+ });
492
+ }
493
+ }
494
+ };
495
+ </script>
496
+
497
+ <style scoped>
498
+ /* 如果有自定义样式可以在这里添加 */
499
+ </style>