| | |
| | | <el-table-column |
| | | prop="organno" |
| | | align="center" |
| | | fixed |
| | | label="器官编号" |
| | | width="90" |
| | | > |
| | |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="organname" |
| | | fixed |
| | | align="center" |
| | | label="器官名称" |
| | | width="120" |
| | |
| | | </el-date-picker> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | |
| | | |
| | | <el-table-column |
| | | prop="amount" |
| | | align="center" |
| | |
| | | <el-input v-model="scope.row.amount" placeholder="实收金额" /> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | |
| | | <el-table-column |
| | | prop="amounttime" |
| | | align="center" |
| | |
| | | </el-date-picker> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="organchargedesc" align="center" label="备注"> |
| | | <el-table-column |
| | | prop="organchargedesc" |
| | | width="280" |
| | | align="center" |
| | | label="备注" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | type="textarea" |
| | | :rows="1" |
| | | v-model="scope.row.organchargedesc" |
| | | placeholder="备注" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" type="text" icon="el-icon-circle-plus-outline" @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:donorcharge:edit']">新增</el-button> |
| | | |
| | | <el-button size="mini" type="text" @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:donorcharge:remove']"><span class="button-delete" |
| | | ><i class="el-icon-delete"></i>删除</span |
| | | ></el-button> |
| | | <el-button size="mini" type="text" icon="el-icon-folder-opened" @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:donorcharge:edit']">附件</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="操作" |
| | | fixed="right" |
| | | width="260" |
| | | align="center" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | type="text" |
| | | icon="el-icon-circle-plus-outline" |
| | | @click="handleAddpatient(scope.row)" |
| | | v-hasPermi="['system:donorcharge:edit']" |
| | | >新增</el-button |
| | | > |
| | | |
| | | <el-button |
| | | type="text" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:donorcharge:remove']" |
| | | ><span class="button-delete" |
| | | ><i class="el-icon-delete"></i>删除</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | type="text" |
| | | icon="el-icon-folder-opened" |
| | | @click="Filepopup(scope.$index, scope.row)" |
| | | v-hasPermi="['system:donorcharge:edit']" |
| | | >附件</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-row> |
| | | </el-form> |
| | |
| | | > |
| | | <el-button type="primary" @click="cancel">关闭</el-button> |
| | | </div> |
| | | <!-- 添加患者 --> |
| | | <el-dialog |
| | | title="收费器官/组织选择" |
| | | :visible.sync="dialogVisiblepatient" |
| | | width="70%" |
| | | :before-close="handleClosehz" |
| | | > |
| | | <div class="examine-jic"> |
| | | <div class="jic-value"> |
| | | <el-row :gutter="20"> |
| | | <!--用户数据--> |
| | | <el-form |
| | | :model="patientqueryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="患者名称:"> |
| | | <el-input v-model="patientqueryParams.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="接收医院" prop="status"> |
| | | <el-select |
| | | disabled |
| | | v-model="patientqueryParams.topic" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in topicoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="捐献案例" prop="status"> |
| | | <el-select |
| | | v-model="patientqueryParams.topic" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in topicoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="medium" |
| | | @click="handleQuery" |
| | | >搜索</el-button |
| | | > |
| | | <el-button |
| | | icon="el-icon-refresh" |
| | | size="medium" |
| | | @click="resetQuery" |
| | | >重置</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | <!-- 选择器官列表 --> |
| | | <el-table |
| | | ref="multipleTable" |
| | | :data="tableData" |
| | | tooltip-effect="dark" |
| | | style="width: 100%" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="55"> </el-table-column> |
| | | <el-table-column label="捐献者" width="120"> |
| | | <template slot-scope="scope">{{ scope.row.date }}</template> |
| | | </el-table-column> |
| | | <el-table-column prop="器官编号" label="姓名" width="120"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="器官名称" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="国家分配编号" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="器官接收医院" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column |
| | | ><el-table-column |
| | | prop="address" |
| | | label="受体姓氏" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="接收日期" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="address" |
| | | label="备注" |
| | | show-overflow-tooltip |
| | | > |
| | | </el-table-column> |
| | | </el-table> |
| | | </el-row> |
| | | <pagination |
| | | v-show="patienttotal > 0" |
| | | :total="patienttotal" |
| | | :page.sync="patientqueryParams.pageNum" |
| | | :limit.sync="patientqueryParams.pageSize" |
| | | @pagination="handleAddpatient" |
| | | /> |
| | | </div> |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogVisiblepatient = false">取 消</el-button> |
| | | <el-button type="primary" @click="AddDispatchpatients" |
| | | >确定添加</el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | <!-- 附件弹窗 --> |
| | | <el-dialog |
| | | v-dialogDrags |
| | | :modal="false" |
| | | :close-on-click-modal="false" |
| | | :title="pdftitle" |
| | | :visible.sync="pdfVisible" |
| | | width="60%" |
| | | > |
| | | <div class="pdfimg"> |
| | | <div class="box-pdf"> |
| | | <div> |
| | | <el-upload |
| | | size="mini" |
| | | class="upload-demo" |
| | | :action="uploadFileUrl" |
| | | :file-list="fileListto" |
| | | :show-file-list="false" |
| | | multiple |
| | | drag |
| | | :headers="headers" |
| | | :on-success=" |
| | | (response, file, fileList) => |
| | | uploadSccess(response, file, fileList) |
| | | " |
| | | :on-preview="downFile" |
| | | :disabled="operationType == 'detail'" |
| | | :on-error="handleUploadError" |
| | | :on-remove="remove" |
| | | accept="image/*,.pdf" |
| | | > |
| | | <i class="el-icon-upload"></i> |
| | | <div class="el-upload__text"> |
| | | 将票据拖到此处,或 |
| | | <em |
| | | ><el-button |
| | | :disabled="operationType == 'detail'" |
| | | size="small" |
| | | type="primary" |
| | | >点击上传</el-button |
| | | ></em |
| | | > |
| | | </div> |
| | | </el-upload> |
| | | <el-table |
| | | :data="fileListto" |
| | | @row-click="downFile" |
| | | style="width: 100%" |
| | | height="400" |
| | | > |
| | | <el-table-column |
| | | prop="name" |
| | | :show-overflow-tooltip="true" |
| | | label="名称" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <i style="color:#409EFF" class=" el-icon-s-order" /> |
| | | <span>{{ scope.row.name }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | prop="name" |
| | | width="190" |
| | | :show-overflow-tooltip="true" |
| | | label="功能" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | type="danger" |
| | | size="mini" |
| | | @click.native.prevent.stop="deletedowfile(scope.row)" |
| | | >删除</el-button |
| | | > |
| | | <el-button |
| | | type="primary" |
| | | size="mini" |
| | | @click.native.prevent.stop="moveupdowfile(scope.row)" |
| | | >上移</el-button |
| | | > |
| | | <el-button |
| | | type="success" |
| | | size="mini" |
| | | icon="el-icon-search" |
| | | circle |
| | | @click.native.prevent.stop="Downloadfile(scope.row)" |
| | | ></el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | |
| | | <div v-if="this.previewpdf && pdfimgsrcList.length" class="pdfimgmin"> |
| | | <!-- <img :src="pdfimg" /> --> |
| | | <el-image |
| | | style="width: 95%; height: 90%" |
| | | @error="handleImageError" |
| | | @load="handleImageLoad" |
| | | :src="pdfimg" |
| | | :preview-src-list="pdfimgsrcList" |
| | | > |
| | | <!-- <div slot="error" class="image-slot"> |
| | | <i class="el-icon-picture-outline"></i> |
| | | </div> --> |
| | | </el-image> |
| | | </div> |
| | | <div v-else class="pdfimgmins">{{ hintitle }}</div> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | data() { |
| | | return { |
| | | activeName: 1, //文件类型 |
| | | // 部门树选项 |
| | | |
| | | tableData: [ |
| | | { |
| | | date: "2016-05-03", |
| | | name: "王小虎", |
| | | address: "上海市普陀区金沙江路 1518 弄" |
| | | }, |
| | | { |
| | | date: "2016-05-02", |
| | | name: "王小虎", |
| | | address: "上海市普陀区金沙江路 1518 弄" |
| | | }, |
| | | { |
| | | date: "2016-05-04", |
| | | name: "王小虎", |
| | | address: "上海市普陀区金沙江路 1518 弄" |
| | | }, |
| | | { |
| | | date: "2016-05-01", |
| | | name: "王小虎", |
| | | address: "上海市普陀区金沙江路 1518 弄" |
| | | } |
| | | ], |
| | | multipleSelection: [], |
| | | patientqueryParams: {}, |
| | | dialogVisiblepatient: false, |
| | | patienttotal: 0, // |
| | | //票据文件 |
| | | pdftitle: "", |
| | | pdfimg: "", |
| | |
| | | { required: true, message: "请输入所属业务组", trigger: "blur" } |
| | | ] |
| | | }, |
| | | topicoptions: [ |
| | | { |
| | | value: "选项1", |
| | | label: "黄金糕" |
| | | }, |
| | | { |
| | | value: "选项2", |
| | | label: "双皮奶" |
| | | }, |
| | | { |
| | | value: "选项5", |
| | | label: "北京烤鸭" |
| | | } |
| | | ], |
| | | |
| | | baselist: [], |
| | | donorList: [], |
| | |
| | | //文件列表 |
| | | fileList: [], |
| | | fileListto: [], |
| | | invoicefileList: [], |
| | | invoicefileListto: [], |
| | | invoicepdfimg: "", |
| | | invoicepdfimgsrcList: [], |
| | | |
| | | invoDatatop: [], |
| | | //人员类别 |
| | | persontype: null, |
| | |
| | | return "关闭提示"; |
| | | } |
| | | }, |
| | | |
| | | handleSelectionChange(val) { |
| | | this.multipleSelection = val; |
| | | }, |
| | | handleClosehz() { |
| | | this.dialogVisiblepatient = false; |
| | | }, |
| | | handleQuery() {}, |
| | | resetQuery() {}, |
| | | handleUploadError() {}, |
| | | // 弹框添加 |
| | | AddDispatchpatients() { |
| | | this.dialogVisiblepatient = false; |
| | | }, |
| | | // 点击新增 |
| | | handleAddpatient(row) { |
| | | this.dialogVisiblepatient = true; |
| | | }, |
| | | // 获取请求头 |
| | | Getnetworkheader() { |
| | | let string = window.location.href; |
| | |
| | | this.Networkheader = string.slice(0, index + 4); // 截取8032及其前部字符 |
| | | } |
| | | }, |
| | | // 发票切换 |
| | | handleClick(tab, event) { |
| | | if (this.activeName == 1) { |
| | | this.pdftitle = "共" + this.pdfimgsrcList.length + "项"; |
| | | } else { |
| | | this.pdftitle = "共" + this.invoicepdfimgsrcList.length + "项"; |
| | | } |
| | | }, |
| | | |
| | | getIndexInArray(arr, obj) { |
| | | return arr.indexOf(obj); |
| | | }, |
| | | |
| | | // 表单重置 |
| | | reset() { |
| | | this.form = { |
| | |
| | | } |
| | | }); |
| | | return sums; |
| | | }, |
| | | // 文件------------------------ |
| | | remove(file, fileList) { |
| | | const rbDetails = [...this.rbDetails]; |
| | | |
| | | this.fileListto.splice(this.fileListto.indexOf(file), 1); |
| | | rbDetails[this.atpresent].annexfilesList = this.fileListto; |
| | | }, |
| | | |
| | | uploadSccess(response, file, fileList) { |
| | | this.rbDetails; |
| | | const config = { |
| | | headers: { Authorization: "Bearer " + this.ICDtoken } |
| | | }; |
| | | const pdfimg = this.Networkheader + "/prod-api" + response.fileName; |
| | | //获取票据信息位置 |
| | | if (response.code == 200) { |
| | | this.previewpdf = true; |
| | | fetch(pdfimg, config) |
| | | .then(response => response.blob()) |
| | | .then(blob => { |
| | | // 将获取的数据流转换为URL |
| | | this.pdfimg = URL.createObjectURL(blob); |
| | | this.pdfimgsrcList.push(URL.createObjectURL(blob)); |
| | | this.fileListto.push({ |
| | | name: file.name, |
| | | url: URL.createObjectURL(blob) |
| | | }); |
| | | }) |
| | | .catch(error => { |
| | | console.error("Error loading image", error); |
| | | return; |
| | | }); |
| | | |
| | | this.$modal.msgSuccess(response.msg); |
| | | |
| | | console.log(this.fileListto, "新增后"); |
| | | if (!this.rbDetails[this.atpresent].annexfilesList) { |
| | | this.rbDetails[this.atpresent].annexfilesList = []; |
| | | } |
| | | this.rbDetails[this.atpresent].annexfilesList.push({ |
| | | name: file.name, |
| | | url: response.fileName |
| | | }); |
| | | this.pdftitle = "共" + this.pdfimgsrcList.length + "项"; |
| | | } else { |
| | | console.log(response.msg); |
| | | } |
| | | }, |
| | | |
| | | // 点击票据 |
| | | Filepopup(index, row) { |
| | | const config = { |
| | | headers: { Authorization: "Bearer " + this.ICDtoken } |
| | | }; |
| | | |
| | | this.tableDatatop = []; |
| | | this.fileListto = []; |
| | | this.invoicefileListto = []; |
| | | this.pdfimg = ""; |
| | | this.invoicepdfimg = []; |
| | | this.pdfimgsrcList = []; |
| | | this.invoicepdfimgsrcList = []; |
| | | this.tableDatatop.push(row); |
| | | this.atpresent = index; |
| | | this.pdfVisible = true; |
| | | |
| | | if (this.rbDetails[index].annexfilesList) { |
| | | const fetchPromises = this.rbDetails[index].annexfilesList.map( |
| | | (value, indexson) => { |
| | | const pdfimg = this.Networkheader + "/prod-api" + value.url; |
| | | return fetch(pdfimg, config) |
| | | .then(response => response.blob()) |
| | | .then(blob => { |
| | | return { |
| | | name: value.name, |
| | | url: URL.createObjectURL(blob) |
| | | }; |
| | | }) |
| | | .catch(error => { |
| | | console.error("Error loading image", error); |
| | | return null; |
| | | }); |
| | | } |
| | | ); |
| | | |
| | | Promise.all(fetchPromises).then(fileListto => { |
| | | this.fileListto = fileListto.filter(item => item !== null); |
| | | this.pdfimg = this.fileListto[0].url; |
| | | console.log(this.pdfimg, "pdfimg"); |
| | | this.pdfimgsrcList = this.fileListto.map(item => item.url); |
| | | }); |
| | | |
| | | this.previewpdf = true; |
| | | } else { |
| | | this.fileListto = []; |
| | | this.pdfimg = ""; |
| | | this.pdftitle = ""; |
| | | } |
| | | |
| | | this.pdftitle = "共" + this.pdfimgsrcList.length + "项"; |
| | | |
| | | console.log(this.fileListto, "this.fileListto"); |
| | | console.log(this.rbDetails[index].annexfilesList, "annexfilesList"); |
| | | }, |
| | | |
| | | // 点击已上传文件 |
| | | downFile(item) { |
| | | this.pdftitle = |
| | | "共" + this.pdfimgsrcList.length + "项,当前选中" + item.name; |
| | | let name = item.name.split("."); |
| | | if (name[1] == "pdf") { |
| | | this.$modal.msgWarning("当前文件暂不支持预览"); |
| | | this.previewpdf = false; |
| | | this.hintitle = "当前文件暂不支持预览"; |
| | | } else if (name[1] == "jpg" || "png") { |
| | | console.log(item, "展示"); |
| | | this.previewpdf = true; |
| | | if (item.url) { |
| | | this.pdfimg = item.url; |
| | | } else { |
| | | this.pdfimg = ""; |
| | | } |
| | | } else { |
| | | this.hintitle = "当前文件暂不支持预览"; |
| | | this.$modal.msgWarning("当前文件暂不支持预览"); |
| | | this.previewpdf = false; |
| | | } |
| | | }, |
| | | getIndexInArray(arr, obj) { |
| | | return arr.indexOf(obj); |
| | | }, |
| | | // 发票切换 |
| | | handleClick(tab, event) { |
| | | this.pdftitle = "共" + this.pdfimgsrcList.length + "项"; |
| | | }, |
| | | // 点击删除 |
| | | deletedowfile(row) { |
| | | console.log(row); |
| | | let indexvalue = ""; |
| | | const indexlist = this.getIndexInArray(this.pdfimgsrcList, row.url); |
| | | this.pdfimgsrcList.splice(indexlist, 1); |
| | | const index = this.getIndexInArray(this.fileListto, row); |
| | | this.fileListto.splice(index, 1); |
| | | console.log(this.rbDetails[this.atpresent].annexfilesList); |
| | | indexvalue = this.rbDetails[this.atpresent].annexfilesList.findIndex( |
| | | item => item.name == row.name |
| | | ); |
| | | console.log(indexvalue, "删除索引"); |
| | | this.rbDetails[this.atpresent].annexfilesList.splice(indexvalue, 1); |
| | | }, |
| | | // 点击上移 |
| | | moveupdowfile(row) { |
| | | const index = this.fileListto.findIndex(item => item.name == row.name); |
| | | const item = this.fileListto.splice(index, 1)[0]; // 移除指定索引处的元素,并保存到item变量中 |
| | | this.fileListto.splice(index - 1, 0, item); // 将item插入到索引位置的前一位 |
| | | |
| | | const indexann = this.rbDetails[this.atpresent].annexfilesList.findIndex( |
| | | item => item.name == row.name |
| | | ); |
| | | const itemann = this.rbDetails[this.atpresent].annexfilesList.splice( |
| | | indexann, |
| | | 1 |
| | | )[0]; // 移除指定索引处的元素,并保存到item变量中 |
| | | this.rbDetails[this.atpresent].annexfilesList.splice( |
| | | indexann - 1, |
| | | 0, |
| | | itemann |
| | | ); // 将itemann插入到索引位置的前一位 |
| | | console.log(indexann, "indexann"); |
| | | console.log(index, "index"); |
| | | |
| | | console.log( |
| | | this.rbDetails[this.atpresent].annexfilesList, |
| | | "annexfilesList" |
| | | ); |
| | | console.log(this.fileListto, "fileListto"); |
| | | // console.log(this.rbDetails[this.atpresent].invoicefilesList,'invoicefilesList'); |
| | | }, |
| | | Downloadfile(row) { |
| | | window.location.href = row.url; |
| | | } |
| | | } |
| | | }; |
| | |
| | | text-align: center; |
| | | } |
| | | } |
| | | .button-delete{ |
| | | .button-delete { |
| | | color: rgb(236, 69, 69); |
| | | } |
| | | .examine-jic { |
| | | .headline { |
| | | font-size: 24px; |
| | | border-left: 5px solid #41a1be; |
| | | padding-left: 5px; |
| | | margin-bottom: 10px; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | .Add-details { |
| | | font-size: 18px; |
| | | color: #02a7f0; |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | .jic-value { |
| | | font-size: 20px; |
| | | border-top: 1px solid #a7abac; |
| | | padding: 10px; |
| | | margin-bottom: 10px; |
| | | .details-jic { |
| | | padding: 10px 15px; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .details-title { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | margin-bottom: 10px; |
| | | div:nth-child(2) { |
| | | color: #02a7f0; |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | .details-renw { |
| | | background: #e4ebfc; |
| | | padding: 15px 5px; |
| | | border-radius: 5px; |
| | | margin-bottom: 20px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | ::v-deep .el-input--medium .el-input__inner { |
| | | height: 36px; |