| | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="mini" |
| | | @click="handleAdd" |
| | | >新增</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | |
| | | ></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-table v-loading="loading" border :data="organfeeList"> |
| | | <el-table |
| | | v-loading="loading" |
| | | border |
| | | :data="organfeeList" |
| | | highlight-current-row |
| | | @current-change="handleCurrentChange" |
| | | > |
| | | <el-table-column type="index" label="序号" width="55" align="center" /> |
| | | <el-table-column |
| | | prop="donatetime" |
| | |
| | | <span>{{ parseTime(scope.row.donatetime, "{y}-{m}-{d}") }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="hospitalname" |
| | | label="付款医院" |
| | | width="200" |
| | | align="center" |
| | | /> |
| | | |
| | | <el-table-column |
| | | prop="donorname" |
| | | label="捐献者" |
| | |
| | | align="center" |
| | | show-overflow-tooltip |
| | | /> |
| | | <el-table-column prop="name" label="受体姓氏" width="120" align="center" /> |
| | | <el-table-column prop="name" label="受体" width="120" align="center" /> |
| | | |
| | | <el-table-column label="器官状态" width="120" align="center"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ selectOrganState(scope.row.organState) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="hospitalname" |
| | | label="付款医院" |
| | | width="200" |
| | | align="center" |
| | | /> |
| | | <el-table-column |
| | | prop="organcharge" |
| | | label="应收金额" |
| | |
| | | <el-dialog |
| | | title="修改器官信息" |
| | | :visible.sync="editOpen" |
| | | width="500px" |
| | | width="760px" |
| | | append-to-body |
| | | :close-on-click-modal="false" |
| | | > |
| | | <el-form ref="editForm" :model="editForm" label-width="110px"> |
| | | <el-form-item label="付款器官名称" prop="payOrganName"> |
| | | <el-input |
| | | v-model="editForm.payOrganName" |
| | | maxlength="100" |
| | | placeholder="请输入付款器官名称" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="器官状态" prop="organState"> |
| | | <el-select |
| | | v-model="editForm.organState" |
| | | placeholder="请选择器官状态" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="item in organStateList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="备注" prop="organchargedesc"> |
| | | <el-input |
| | | v-model="editForm.organchargedesc" |
| | | type="textarea" |
| | | :rows="3" |
| | | maxlength="200" |
| | | show-word-limit |
| | | placeholder="请输入备注" |
| | | /> |
| | | </el-form-item> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="付款医院" prop="hospitalno"> |
| | | <el-select |
| | | v-model="editForm.hospitalno" |
| | | placeholder="请选择付款医院" |
| | | clearable |
| | | filterable |
| | | style="width: 100%" |
| | | @change="handleEditHospitalChange" |
| | | > |
| | | <el-option |
| | | v-for="item in organizationList" |
| | | :key="item.organizationid" |
| | | :label="item.organizationname" |
| | | :value="String(item.organizationid)" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="付款器官名称" prop="payOrganName"> |
| | | <el-input |
| | | v-model="editForm.payOrganName" |
| | | maxlength="100" |
| | | placeholder="请输入付款器官名称" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="器官分配编号" prop="caseno"> |
| | | <el-input |
| | | v-model="editForm.caseno" |
| | | maxlength="50" |
| | | placeholder="请输入器官分配编号" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="受体" prop="name"> |
| | | <el-input |
| | | v-model="editForm.name" |
| | | maxlength="50" |
| | | placeholder="请输入受体" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="器官状态" prop="organState"> |
| | | <el-select |
| | | v-model="editForm.organState" |
| | | placeholder="请选择器官状态" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="item in organStateList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item label="备注" prop="organchargedesc"> |
| | | <el-input |
| | | v-model="editForm.organchargedesc" |
| | | type="textarea" |
| | | :rows="3" |
| | | maxlength="200" |
| | | show-word-limit |
| | | placeholder="请输入备注" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="editOpen = false">取 消</el-button> |
| | | <el-button type="primary" :loading="editLoading" @click="submitEdit" |
| | | >确 定</el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | |
| | | <!-- 新增器官费用 --> |
| | | <el-dialog |
| | | title="新增器官费用" |
| | | :visible.sync="addOpen" |
| | | width="820px" |
| | | append-to-body |
| | | :close-on-click-modal="false" |
| | | > |
| | | <el-form |
| | | ref="addForm" |
| | | :model="addForm" |
| | | :rules="addRules" |
| | | label-width="110px" |
| | | > |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12"> |
| | | <el-form-item label="捐献者" prop="donorname"> |
| | | <el-input |
| | | v-model="addForm.donorname" |
| | | maxlength="50" |
| | | placeholder="请输入捐献者" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="付款医院" prop="hospitalno"> |
| | | <el-select |
| | | v-model="addForm.hospitalno" |
| | | placeholder="请选择付款医院" |
| | | clearable |
| | | filterable |
| | | style="width: 100%" |
| | | @change="handleAddHospitalChange" |
| | | > |
| | | <el-option |
| | | v-for="item in organizationList" |
| | | :key="item.organizationid" |
| | | :label="item.organizationname" |
| | | :value="String(item.organizationid)" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="器官名称" prop="organname"> |
| | | <el-input |
| | | v-model="addForm.organname" |
| | | maxlength="50" |
| | | placeholder="请输入器官名称" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="付款器官名称" prop="payOrganName"> |
| | | <el-input |
| | | v-model="addForm.payOrganName" |
| | | maxlength="100" |
| | | placeholder="请输入付款器官名称" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="器官分配编号" prop="caseno"> |
| | | <el-input |
| | | v-model="addForm.caseno" |
| | | maxlength="50" |
| | | placeholder="请输入器官分配编号" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="受体" prop="name"> |
| | | <el-input |
| | | v-model="addForm.name" |
| | | maxlength="50" |
| | | placeholder="请输入受体" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="器官状态" prop="organState"> |
| | | <el-select |
| | | v-model="addForm.organState" |
| | | placeholder="请选择器官状态" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="item in organStateList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="收款日期" prop="organtime"> |
| | | <el-date-picker |
| | | v-model="addForm.organtime" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请选择收款日期" |
| | | style="width: 100%" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="应收金额" prop="organcharge"> |
| | | <el-input-number |
| | | v-model="addForm.organcharge" |
| | | :min="0" |
| | | :precision="2" |
| | | :controls="false" |
| | | placeholder="请输入应收金额" |
| | | style="width: 100%" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="实收金额" prop="amount"> |
| | | <el-input-number |
| | | v-model="addForm.amount" |
| | | :min="0" |
| | | :precision="2" |
| | | :controls="false" |
| | | placeholder="请输入实收金额" |
| | | style="width: 100%" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-form-item label="备注" prop="organchargedesc"> |
| | | <el-input |
| | | v-model="addForm.organchargedesc" |
| | | type="textarea" |
| | | :rows="3" |
| | | maxlength="200" |
| | | show-word-limit |
| | | placeholder="请输入备注" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="addOpen = false">取 消</el-button> |
| | | <el-button type="primary" :loading="addLoading" @click="submitAdd" |
| | | >确 定</el-button |
| | | > |
| | | </span> |
| | |
| | | <script> |
| | | import { |
| | | listDonorchargeorgan, |
| | | addDonorchargeorgan, |
| | | updateDonorchargeorgan, |
| | | exportOrganfee |
| | | } from "@/api/project/donorcharge"; |
| | | import { listOrganization } from "@/api/project/organization"; |
| | | |
| | | /** 新增器官费用的空表单 */ |
| | | function emptyAddForm() { |
| | | return { |
| | | infoid: null, |
| | | donorname: null, |
| | | hospitalno: null, |
| | | hospitalname: null, |
| | | organname: null, |
| | | payOrganName: null, |
| | | caseno: null, |
| | | name: null, |
| | | organState: null, |
| | | organcharge: null, |
| | | amount: null, |
| | | organtime: null, |
| | | organchargedesc: null |
| | | }; |
| | | } |
| | | |
| | | export default { |
| | | name: "Organfee", |
| | |
| | | total: 0, |
| | | // 器官费用列表 |
| | | organfeeList: [], |
| | | // 表格当前选中行 |
| | | currentRow: null, |
| | | // 接收医院(机构)下拉数据 |
| | | organizationList: [], |
| | | // 报告日期区间 |
| | |
| | | editLoading: false, |
| | | editForm: { |
| | | id: null, |
| | | hospitalno: null, |
| | | hospitalname: null, |
| | | payOrganName: null, |
| | | caseno: null, |
| | | name: null, |
| | | organState: null, |
| | | organchargedesc: null |
| | | }, |
| | | // 新增弹窗 |
| | | addOpen: false, |
| | | addLoading: false, |
| | | addForm: emptyAddForm(), |
| | | addRules: { |
| | | donorname: [ |
| | | { required: true, message: "请输入捐献者", trigger: "blur" } |
| | | ], |
| | | organname: [ |
| | | { required: true, message: "请输入器官名称", trigger: "blur" } |
| | | ], |
| | | organcharge: [ |
| | | { required: true, message: "请输入应收金额", trigger: "blur" } |
| | | ] |
| | | }, |
| | | // 查询参数 |
| | | queryParams: { |
| | |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | /** 打开修改弹窗(付款器官名称、器官状态、备注) */ |
| | | /** 表格当前行变化 */ |
| | | handleCurrentChange(row) { |
| | | this.currentRow = row; |
| | | }, |
| | | /** 新增按钮操作:以当前选中的一行为模板,复制除 id 外的字段 */ |
| | | handleAdd() { |
| | | const row = this.currentRow; |
| | | if (!row) { |
| | | this.$modal.msgWarning("请先选中一行数据"); |
| | | return; |
| | | } |
| | | this.addForm = { |
| | | infoid: |
| | | row.infoid === null || row.infoid === undefined ? null : row.infoid, |
| | | donorname: row.donorname || null, |
| | | hospitalno: |
| | | row.hospitalno === null || row.hospitalno === undefined |
| | | ? null |
| | | : String(row.hospitalno), |
| | | hospitalname: row.hospitalname || null, |
| | | organname: row.organname || null, |
| | | payOrganName: row.payOrganName || null, |
| | | caseno: row.caseno || null, |
| | | name: row.name || null, |
| | | organState: |
| | | row.organState === null || row.organState === undefined |
| | | ? null |
| | | : String(row.organState), |
| | | organcharge: |
| | | row.organcharge === null || row.organcharge === undefined |
| | | ? null |
| | | : row.organcharge, |
| | | amount: |
| | | row.amount === null || row.amount === undefined ? null : row.amount, |
| | | organtime: row.organtime || null, |
| | | organchargedesc: row.organchargedesc || null |
| | | }; |
| | | this.addOpen = true; |
| | | this.$nextTick(() => { |
| | | this.$refs.addForm && this.$refs.addForm.clearValidate(); |
| | | }); |
| | | }, |
| | | /** 付款医院选择后同步医院名称 */ |
| | | handleAddHospitalChange(value) { |
| | | const org = this.organizationList.find( |
| | | item => String(item.organizationid) === String(value) |
| | | ); |
| | | this.addForm.hospitalname = org ? org.organizationname : null; |
| | | }, |
| | | /** 修改弹窗:付款医院选择后同步医院名称 */ |
| | | handleEditHospitalChange(value) { |
| | | const org = this.organizationList.find( |
| | | item => String(item.organizationid) === String(value) |
| | | ); |
| | | this.editForm.hospitalname = org ? org.organizationname : null; |
| | | }, |
| | | /** 提交新增 */ |
| | | submitAdd() { |
| | | this.$refs.addForm.validate(valid => { |
| | | if (!valid) { |
| | | return; |
| | | } |
| | | this.addLoading = true; |
| | | addDonorchargeorgan(this.addForm) |
| | | .then(() => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.addOpen = false; |
| | | this.getList(); |
| | | }) |
| | | .finally(() => { |
| | | this.addLoading = false; |
| | | }); |
| | | }); |
| | | }, |
| | | /** 打开修改弹窗(付款医院、付款器官名称、器官状态、备注) */ |
| | | handleEdit(row) { |
| | | this.editForm = { |
| | | id: row.id, |
| | | hospitalno: |
| | | row.hospitalno === null || row.hospitalno === undefined |
| | | ? null |
| | | : String(row.hospitalno), |
| | | hospitalname: row.hospitalname || null, |
| | | payOrganName: row.payOrganName || "", |
| | | caseno: row.caseno || "", |
| | | name: row.name || "", |
| | | organState: |
| | | row.organState === null || row.organState === undefined |
| | | ? null |