diff --git a/src/api/apis_moudles/welfare.js b/src/api/apis_moudles/welfare.js index 9f7134c1ffc8c2caee05ff811e7d5e602f72db5e..8881a6434acdfeb58119d9ace50173a9c28ee3da 100644 --- a/src/api/apis_moudles/welfare.js +++ b/src/api/apis_moudles/welfare.js @@ -11,9 +11,10 @@ export default { conditionList: "/backstage/auth/conditionList", addCondition: "/backstage/auth/conditionCreate", editCondition: "/backstage/auth/conditionEdit", - benefitList: "/backstage/auth/benefitList", + benefitList: "/backstage/auth/benefitListShow", addBenefit: "/backstage/auth/createBenefit", editBenefit: "/backstage/auth/benefitEdit", getFrequencyCode: "/backstage/auth/frequencyList", getLimitCode: "/backstage/auth/limitList", + remainingQuotaSet: "/backstage/auth/remainingQuotaSet" // ä¿®æ”¹å‰©ä½™é‡‘é¢ }; diff --git a/src/api/funcs_modules/welfare.js b/src/api/funcs_modules/welfare.js index fa8fbe007530a04fc9567cef6d3d5a103d87f257..bdd732eddea750178834430573d8eb2666f0f26a 100644 --- a/src/api/funcs_modules/welfare.js +++ b/src/api/funcs_modules/welfare.js @@ -66,6 +66,11 @@ const GETLIMITCODE = (data) => { return req.post(apis.getLimitCode, data); }; +// ä¿®æ”¹å‰©ä½™é‡‘é¢ +const SETREMAININGQUOTA = (data) => { + return req.post(apis.remainingQuotaSet, data); +}; + // 对象数组 export default { GETBENEGITTYPE, @@ -84,4 +89,5 @@ export default { EDITCOVERAGEDATA, GETFREQUENCYCODE, GETLIMITCODE, + SETREMAININGQUOTA }; diff --git a/src/assets/image/login_bg.jpg b/src/assets/image/login_bg.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ed56a548a1f057b5b9a8bf9fb177f86dd757ba37 Binary files /dev/null and b/src/assets/image/login_bg.jpg differ diff --git a/src/assets/image/login_bg.png b/src/assets/image/login_bg.png deleted file mode 100644 index 474a8399c80b86fa14662f5fa7ff212378045fae..0000000000000000000000000000000000000000 Binary files a/src/assets/image/login_bg.png and /dev/null differ diff --git a/src/views/author/index.vue b/src/views/author/index.vue index 9804ea3ffb66e8e6f931dd3fee4757ccf901f4c4..0b86dc23098629397ab52cf0075022abdf99a20d 100644 --- a/src/views/author/index.vue +++ b/src/views/author/index.vue @@ -24,7 +24,7 @@ export default { justify-content: center; align-items: center; min-height: 100vh; - background: url("../../assets/image/login_bg.png") center center no-repeat; + background: url("../../assets/image/login_bg.jpg") center center no-repeat; background-size: 100% 100%; .title { .fs(90); diff --git a/src/views/charge-query/detail.vue b/src/views/charge-query/detail.vue index 532917621c06842a4feb87c011c7c6af600d0261..e2fdb3a4bb5a17cd0b5a4016bd77d420720fefa3 100644 --- a/src/views/charge-query/detail.vue +++ b/src/views/charge-query/detail.vue @@ -327,7 +327,8 @@ export default { }, // é‡ç½® handlerReset() { - this.form = {}; + const { patientNo, patientName } = this.form; + this.form = {patientNo, patientName}; }, editEvt(record) { this.editFormObj = { diff --git a/src/views/charge-query/lpjManageDetail.vue b/src/views/charge-query/lpjManageDetail.vue index 770a9b71b51b3982905285ce1f7b3324a5303671..52a3033ee020c991cf3bea5098037c2ecfa681ce 100644 --- a/src/views/charge-query/lpjManageDetail.vue +++ b/src/views/charge-query/lpjManageDetail.vue @@ -168,7 +168,7 @@ export default { { title: "应收金é¢", dataIndex: "chargeAmount", width: 100, align: 'center' }, { title: "折扣金é¢", dataIndex: "discountAmount", width: 100, align: 'center' }, { title: "å‡å…金é¢", dataIndex: "discountAmount2", width: 100, align: 'center' }, - { title: "客户自负", dataIndex: "paidAmount", width: 100, align: 'center' }, + { title: "客户自付", dataIndex: "paidAmount", width: 100, align: 'center' }, { title: "ç†èµ”金é¢", dataIndex: "paidamount", width: 100, align: 'center' }, // { title: "æ“作", key: "operation", width: "175px",fixed: "right",scopedSlots: { customRender: "operation" }}, ]; diff --git a/src/views/customer/edit/index.vue b/src/views/customer/edit/index.vue index 420aedf77f321319964940ec64bc48d539ef6fb4..ecb7aaed46999004a080827b9e163cfbd993345d 100644 --- a/src/views/customer/edit/index.vue +++ b/src/views/customer/edit/index.vue @@ -283,6 +283,14 @@ export default { this.$apis.GETCUSTOMERDETAIL(data).then((res) => { if (res.returnCode === "0000") { let data = res.content || {}; + // type === '2'说明是新增ä¿å•,éœ€è¦æŠŠå®¢æˆ·ä¿¡æ¯æ¸…空 + if(type === '2') { + const { mrnNo, idNo, patientName, birthday, sex, id } = data + this.form = { ...this.form, mrnNo, idNo, patientName, birthday, sex, id } + this.medCardCopeFiles = []; + this.idCardCopeFiles = []; + return true + } this._getCorporateCode(data.payorId); this._getPlanCode(data.corpId); const medCardCopeFiles = data.medCardCopeFiles || []; @@ -301,29 +309,6 @@ export default { name: item.fileName, }) }) - // type === '2'说明是新增ä¿å•,éœ€è¦æŠŠå®¢æˆ·ä¿¡æ¯æ¸…空 - if(type === '2') { - data = { - ...data, - payorId: undefined, - corpName: '', - idType: undefined, - policyNo: '', - firstEnrollmentTime: '', - startDate: '', - cardNo: '', - policyDircetArea: undefined, - waitingPeriod: 'N', - isUndertakeAnamnesis: "N", - endDate: '', - planName: undefined, - remark: '', - medCardCopeFiles: [], - idCardCopeFiles: [], // 身份è¯å¤å°ä»¶ - } - this.medCardCopeFiles = []; - this.idCardCopeFiles = []; - } this.form = data; } // this.dataList = (res.content && res.content.list) || []; diff --git a/src/views/customer/info/index.vue b/src/views/customer/info/index.vue index e2cb899edb038ce90ae1c5b79e92032f1ea8eed5..68fca1b3cd7fd457ba64001a4bd6401e7a604eb1 100644 --- a/src/views/customer/info/index.vue +++ b/src/views/customer/info/index.vue @@ -56,7 +56,7 @@ <span>{{text | formatSex}}</span> </template> <template slot="operation" slot-scope="record"> - <a-button type="link" @click.stop="changeDataStatus(record)">修改</a-button> + <a-button type="link" v-if="!record.isExpired" @click.stop="changeDataStatus(record)">修改</a-button> <a-button type="link" @click.stop="printClaimPdf(record)">打å°ç†èµ”申请书</a-button> <a-button type="link" @click.stop="changeDataStatus(record, '2')">新增ä¿å•</a-button> <!-- <a-button type="link" class="success">新增</a-button> --> @@ -86,9 +86,21 @@ export default { { title: "出生日期", dataIndex: "birthday", width: 170, customRender: dateFormat}, { title: "性别", dataIndex: "sex", width: 80, scopedSlots: { customRender: "sex" } }, { title: "ä¿é™©å…¬å¸", dataIndex: "payorName", width: 180 }, - { title: "ä¿å•å·ç ", dataIndex: "policyNo", width: 190 }, - { title: "ä¿å•生效日期", dataIndex: "startDate", width: 170, customRender: dateFormat }, - { title: "ä¿å•ç»ˆæ¢æ—¥æœŸ", dataIndex: "endDate", width: 170, customRender: dateFormat }, + { title: "ä¿é™©å¡å·", dataIndex: "cardNo", width: 190 }, + { title: "ä¿å•生效日期", dataIndex: "startDate", width: 170, customRender: (val, row) => { + const formatDate = dateFormat(val) + if (row.isExpired) { + return <span class="red-text">{formatDate}</span> + } + return formatDate; + }}, + { title: "ä¿å•ç»ˆæ¢æ—¥æœŸ", dataIndex: "endDate", width: 170, customRender: (val, row) => { + const formatDate = dateFormat(val) + if (row.isExpired) { + return <span class="red-text">{formatDate}</span> + } + return formatDate; + }}, { title: "æ“作", key: "operation", width: "270px", fixed: "right", scopedSlots: { customRender: "operation" }, align: 'center'}, ]; return { @@ -198,8 +210,13 @@ export default { ...this.pager, }; this.$apis.GETCUSTOMERLIST(data).then((res) => { - this.dataList = (res.content && res.content.list) || []; this.pager.total = (res.content && res.content.total) || 0; + const data = (res.content && res.content.list) || []; + data.forEach(item => { + item.isExpired = moment(item.endDate).valueOf() < moment(new Date()).valueOf() + }); + console.log(data) + this.dataList = data; }); }, }, @@ -215,4 +232,7 @@ export default { .ant-btn .icon-class { .mg-r(10); } +.red-text{ + color: red; +} </style> diff --git a/src/views/info/company.vue b/src/views/info/company.vue index b105e54dd5560ae1208329137b93379ac55d8d08..0fa4362aa1f5073fe79a336621cb4e00b308fcb4 100644 --- a/src/views/info/company.vue +++ b/src/views/info/company.vue @@ -5,16 +5,11 @@ <a-button type="primary" @click.stop="addCompany">新建ä¿é™©å…¬å¸</a-button> </div> <a-table :columns="columns" :data-source="dataList" :scroll="{ x: 'max-content' }" :pagination="false"> - <div v-for="col in columns" :slot="col.dataIndex" slot-scope="text, record, index" :key="col.dataIndex" > - <template v-if="col.dataIndex == 'operation'"> + <template slot='operation' slot-scope="record"> <a-button type="link" @click.stop="editEvt(record)">修改</a-button> <a-button type="link" class="success" @click.stop="detailEvt(record)">查看</a-button> <a-button type="link" class="danger" @click.stop="delRecord(index)">åˆ é™¤</a-button> </template> - <template v-else> - <span>{{ text }}</span> - </template> - </div> </a-table> <!--分页--> <BurtPagination :pagination="pagination" @pageChange="getData" /> @@ -62,18 +57,23 @@ <script> import BurtPagination from "@/components/CUSTOMER/pagation"; -const columns = [ - { title: "åºå·", dataIndex: "id",width: 120}, - { title: "ä¿é™©å…¬å¸åç§°",dataIndex: "longName", ellipsis: true, scopedSlots: { customRender: "longName" },width: 130}, - { title: "ä¿é™©å…¬å¸è‹±æ–‡å", dataIndex: "englishName",ellipsis: true,scopedSlots: { customRender: "englishName" },width: 105}, - { title: "è”系电è¯", dataIndex: "contactPhone", scopedSlots: { customRender: "contactPhone" }, width: 125}, - { title: "è”系地å€", dataIndex: "address", ellipsis: true, scopedSlots: { customRender: "address" }, width: 180}, - { title: "Protal链接", dataIndex: "portalUrl", ellipsis: true, scopedSlots: { customRender: "portalUrl" }, width: 155 }, - { title: "è”系人", dataIndex: "contactPerson", ellipsis: true, scopedSlots: { customRender: "contactPerson" },width: 100}, - { title: "æ“作", dataIndex: "operation", scopedSlots: { customRender: "operation" },fixed: "right", width: "200px",align: "center"}, -]; + export default { data() { + const columns = [ + { title: "åºå·", dataIndex: "id",width: 120}, + { title: "ä¿é™©å…¬å¸åç§°",dataIndex: "longName", ellipsis: true,width: 130}, + { title: "ä¿é™©å…¬å¸è‹±æ–‡å", dataIndex: "englishName",ellipsis: true,width: 105}, + { title: "è”系电è¯", dataIndex: "contactPhone", width: 125, customRender: (val) => { + const valArr = val && val.split(/,|\n/ig) || []; + const valStr = valArr.join('<br />') + return <span domPropsInnerHTML={valStr}></span> + }}, + { title: "è”系地å€", dataIndex: "address", ellipsis: true, width: 180}, + { title: "Protal链接", dataIndex: "portalUrl", ellipsis: true, width: 155 }, + { title: "è”系人", dataIndex: "contactPerson", ellipsis: true, width: 100}, + { title: "æ“作", dataIndex: "operation", scopedSlots: { customRender: "operation" },fixed: "right", width: "200px",align: "center"}, + ]; return { dialogShow: false, columns, diff --git a/src/views/info/components/companyInfo.vue b/src/views/info/components/companyInfo.vue index af4a8725005a848fae8d9570a325a508a734f658..b2f33846a07fb2601744ccafdadfacb74b60d6f6 100644 --- a/src/views/info/components/companyInfo.vue +++ b/src/views/info/components/companyInfo.vue @@ -106,9 +106,16 @@ </a-col> <a-col :lg="6" :sm="12"> <a-form-model-item label="密ç "> - <a-input type="password" v-model="detailObj.loginPwd" placeholder="密ç " /> + <a-input-password type="password" v-model="detailObj.loginPwd" placeholder="密ç " /> </a-form-model-item> </a-col> + <a-col :lg="6" :sm="12"> + <a-form-model-item label="备注"> + <a-textarea type="password" v-model="detailObj.remark" max-length="500" :auto-size="{minRows: 3}" /> + </a-form-model-item> + </a-col> + </a-row> + <a-row :gutter="30"> <a-col :lg="6" :sm="12"> <a-form-model-item label="ç†èµ”申请书模æ¿"> <a-upload name="file" :multiple="false" accept="application/pdf" :showUploadList="true" diff --git a/src/views/info/components/infoDoctor.vue b/src/views/info/components/infoDoctor.vue index f624be738454a92b0b937a42579dc8fae5d54028..1ad06972e4fd274f61ee2624103ee9111dc75930 100644 --- a/src/views/info/components/infoDoctor.vue +++ b/src/views/info/components/infoDoctor.vue @@ -1,5 +1,10 @@ <template> <div class="info-doctor"> + <div class="mar-bottom10"> + <a-button type="primary" @click="editEvt({})"> + <Icon name="ssiadd" :size="14" />新建医生 + </a-button> + </div> <a-table :columns="columns" :data-source="dataList" :scroll="{ x: 'max-content' }" :pagination="false"> <template slot="specialtyList" slot-scope="text, record"> <span>{{ filterSpecialty(record.specialtyList) }}</span> @@ -52,6 +57,13 @@ </a-select> </a-form-model-item> </a-col> + <a-col :lg="12" :sm="24"> + <a-form-model-item label="状æ€" prop="jobStatus"> + <a-select v-model="editFormObj.jobStatus" placeholder="请选择" showSearch allowClear> + <a-select-option :value="item.code" v-for="item in jobStatusCode" :key="item.code">{{ item.name }}</a-select-option> + </a-select> + </a-form-model-item> + </a-col> </a-row> </a-form-model> </a-modal> @@ -60,16 +72,6 @@ <script> import BurtPagination from "@/components/CUSTOMER/pagation"; -const columns = [ - { title: "åºå·", dataIndex: "id", ellipsis: true, width: 150 }, - { title: "å·¥å·", dataIndex: "doctorCode", ellipsis: true, width: 95 }, - { title: "医生姓å", dataIndex: "doctorDesc", ellipsis: true, width: 125 }, - { title: "医生英文å", dataIndex: "doctorDescLang1", ellipsis: true, width: 135,}, - { title: "科室", dataIndex: "specialtyList", ellipsis: true, scopedSlots: { customRender: "specialtyList" }, width: 155,}, - { title: "国家/区域", dataIndex: "country", ellipsis: true, width: 110, }, - { title: "è¯è¨€", dataIndex: "language", ellipsis: true, width: 120 }, - { title: "æ“作", dataIndex: "operation", scopedSlots: { customRender: "operation" }, fixed: "right", width: "200px", align: "center", }, -]; export default{ props: { detailObj: { @@ -77,6 +79,24 @@ export default{ } }, data(){ + const columns = [ + { title: "åºå·", dataIndex: "id", ellipsis: true, width: 150 }, + { title: "å·¥å·", dataIndex: "doctorCode", ellipsis: true, width: 95 }, + { title: "医生姓å", dataIndex: "doctorDesc", ellipsis: true, width: 125 }, + { title: "医生英文å", dataIndex: "doctorDescLang1", ellipsis: true, width: 135,}, + { title: "科室", dataIndex: "specialtyList", ellipsis: true, scopedSlots: { customRender: "specialtyList" }, width: 180,}, + { title: "国家/区域", dataIndex: "country", ellipsis: true, width: 110, }, + { title: "è¯è¨€", dataIndex: "language", ellipsis: true, width: 120 }, + { title: "状æ€", dataIndex: "jobStatus", ellipsis: true, width: 120, customRender: (val) => { + for (let i = 0; i < this.jobStatusCode.length; i ++) { + if (this.jobStatusCode[i].code === val) { + return this.jobStatusCode[i].name + } + } + return val + }}, + { title: "æ“作", dataIndex: "operation", scopedSlots: { customRender: "operation" }, fixed: "right", width: "200px", align: "center", }, + ]; return { dialogShow: false, columns, @@ -104,6 +124,10 @@ export default{ { required: true, message: "请选择", trigger: "change" }, ], }, + jobStatusCode: [ + { code: '01', name: '在èŒ' }, + { code: '02', name: '离èŒ' } + ] } }, components: { @@ -180,7 +204,7 @@ export default{ }, editEvt(record) { this.editFormObj = { - id: record.id || "", + id: record.id || undefined, doctorCode: record.doctorCode || "", doctorDesc: record.doctorDesc || "", doctorDescLang1: record.doctorDescLang1 || "", @@ -194,8 +218,8 @@ export default{ handleEditOK() { this.$refs.editForm.validate((valid) => { if (valid) { - this.$apis - .DOCTORUPDATE({ + const fn = this.editFormObj.id ? this.$apis.DOCTORUPDATE : this.$apis.DOCTORCREATE + fn({ ...this.editFormObj, language: this.editFormObj.language.join(','), specialtyList: this.editFormObj.specialtyList.map((item) => { diff --git a/src/views/info/index.vue b/src/views/info/index.vue index 67926047575c53f927cb98e0736b0a496a7a3d67..9a5efa71bf9381904823683d4c8bbdf279eba508 100644 --- a/src/views/info/index.vue +++ b/src/views/info/index.vue @@ -69,17 +69,17 @@ </a-col> <a-col :lg="8" :sm="12"> <a-form-model-item label="Bank Name 银行åç§°"> - <a-input v-model="detailObj.bankAddrEng" type="number" placeholder="Bank Name 银行åç§°" /> + <a-input v-model="detailObj.bankAddrEng" placeholder="Bank Name 银行åç§°" /> </a-form-model-item> </a-col> <a-col :sm="12"> <a-form-model-item label="Bank Address 银行地å€"> - <a-input v-model="detailObj.bankAddr" type="number" placeholder="Bank Address 银行地å€"/> + <a-input v-model="detailObj.bankAddr" placeholder="Bank Address 银行地å€"/> </a-form-model-item> </a-col> <a-col :sm="12"> <a-form-model-item label="Swift Code 国际电汇代ç "> - <a-input v-model="detailObj.telegraphicTransferCode" type="number" placeholder="Swift Code 国际电汇代ç " /> + <a-input v-model="detailObj.telegraphicTransferCode" placeholder="Swift Code 国际电汇代ç " /> </a-form-model-item> </a-col> <a-col :sm="24" class="none-label"> diff --git a/src/views/welfare/edit/components/benefits/index.vue b/src/views/welfare/edit/components/benefits/index.vue index 0b3f20e2c0beddb391f7cba7ccbcb03119551635..e92a75e318949be605fa0301b12302c362bdf4e5 100644 --- a/src/views/welfare/edit/components/benefits/index.vue +++ b/src/views/welfare/edit/components/benefits/index.vue @@ -61,7 +61,7 @@ </a-col> <a-col :md="12"> <a-form-model-item label="ç¦åˆ©é¡¹ç›®" prop="benefitCode"> - <a-select v-model="editForm.benefitCode" show-search allow-clear :filterOption="filterCode"> + <a-select v-model="editForm.benefitCode" show-search allow-clear :filterOption="filterCode" :mode="editForm.id ? '' : multiple"> <a-select-option v-for="item in benefitCode" :key="item.benefitCode + item.description" :value="item.benefitCode"> {{ item.description }} </a-select-option> @@ -93,7 +93,7 @@ </a-input-number> </a-form-model-item> </a-col> - <a-col :md="12"> + <!-- <a-col :md="12"> <a-form-model-item label="英文æè¿°"> <a-input v-model="editForm.englishDesc"></a-input> </a-form-model-item> @@ -102,7 +102,7 @@ <a-form-model-item label="æè¿°"> <a-input v-model="editForm.loaDesc"> </a-input> </a-form-model-item> - </a-col> + </a-col> --> <!-- <a-col :md="12"> <a-form-model-item label="状æ€"> <a-select @@ -164,12 +164,12 @@ export default { return val && moment(val).format('YYYY-MM-DD') } */ const columns = [ - { title: "责任项目明细", dataIndex: "benefitDesc" }, + { title: "责任项目明细", dataIndex: "benefitDesc", width: 300 }, // { title: "预授æƒç”³è¯·", dataIndex: "index" }, // { title: "开始日期", dataIndex: "startDate", customRender: dateFormat }, // { title: "ç»“æŸæ—¥æœŸ", dataIndex: "endDate", customRender: dateFormat }, { title: "更新日期", dataIndex: "modifierDate", width: 180 }, - { title: "备注", dataIndex: "remarks", width: 180 }, + { title: "备注", dataIndex: "remarks" }, { title: "æ“作", key: "operation", @@ -184,7 +184,9 @@ export default { isBenefitEditShow: false, benefitData: [], benefitCode: [], - editForm: {}, + editForm: { + benefitCode: [] + }, editRule: { benefitCode: [{ required: true, message: "请选择ç¦åˆ©é¡¹" }], // startDate: [{ required: true, message: "请选择开始时间" }], @@ -211,12 +213,15 @@ export default { corpCode: this.formData.corpCode, planCode: this.formData.planCode, coverageCode: this.formData.coverageCode, + benefitCode: '', isDirect: "N", status: "1", }; this._getBenefitCode(); this.editForm = this.$lodash.cloneDeep(data); + this.editForm.benefitCode = this.editForm.benefitCode ? this.editForm.benefitCode.split(',') : this.editForm.benefitCode this.isBenefitEditShow = true; + console.log(this.editForm) }, cancel() { this.$refs.editForm.resetFields(); @@ -233,7 +238,14 @@ export default { if (!valid) { return false; } - this._editBenefitData(this.editForm); + // 编辑的时候benefit是å•选æ“作的是String类型 新增的时候为多选 Array类型 + const {id, benefitCode} = this.editForm + const data = { + ...this.editForm, + benefitCode: id || id === 0 ? benefitCode : benefitCode.join(',') + + } + this._editBenefitData(data); }); }, _editBenefitData(data) { diff --git a/src/views/welfare/edit/components/condition/index.vue b/src/views/welfare/edit/components/condition/index.vue index d318f1bb1880084ab85e988cd5d8fcc3f7650ae0..fb31ae2d6e21deacdd2dfd808733b829e4136c22 100644 --- a/src/views/welfare/edit/components/condition/index.vue +++ b/src/views/welfare/edit/components/condition/index.vue @@ -122,14 +122,14 @@ export default { const columns = [ { title: "æ¡ä»¶ç±»åž‹", dataIndex: "frequencyDesc" }, { title: "æ¡ä»¶å†…容", dataIndex: "limitDesc" }, - { title: "状æ€", dataIndex: "status", customRender: (val) => { - for(let i = 0; i < this.statusCode.length; i ++) { - if (val === this.statusCode[i].code) { - return this.statusCode[i].name - } - } - return val; - } }, + // { title: "状æ€", dataIndex: "status", customRender: (val) => { + // for(let i = 0; i < this.statusCode.length; i ++) { + // if (val === this.statusCode[i].code) { + // return this.statusCode[i].name + // } + // } + // return val; + // } }, // { title: "é™é¢æˆ–陿¬¡", dataIndex: "index" }, { title: "ç¦åˆ©é™åˆ¶", dataIndex: "maxValue", customRender: (val, row) => { if (row.limitCode.indexOf('07') === 0) { diff --git a/src/views/welfare/info/components/benefits/index.vue b/src/views/welfare/info/components/benefits/index.vue index e441667090abe4c92838dd8086a045d3680f8032..38663e7d215d96fd9e8a262f09aaf66598a6d982 100644 --- a/src/views/welfare/info/components/benefits/index.vue +++ b/src/views/welfare/info/components/benefits/index.vue @@ -25,24 +25,43 @@ </a-table> </div> </div> --> - <a-collapse v-model="activeKeys" expand-icon-position="right" :bordered="false"> + <!-- <a-collapse v-model="activeKeys" expand-icon-position="right" :bordered="false"> <a-collapse-panel v-for="item in benefitData" :key="item.benefitCode" :header="item.benefitCode + ' ' +item.benefitDesc"> <div> <a-row class="policy_line" :gutter="10"> <a-col :span="6">事先授æƒï¼š</a-col> <a-col :span="6">ç‰å¾…期:{{ item.waitingPeriod }}</a-col> - <!-- <a-col :span="6">å¹´é™é¢ï¼š</a-col> - <a-col :span="6">赔付比例:</a-col> --> + <a-col :span="6">å¹´é™é¢ï¼š</a-col> + <a-col :span="6">赔付比例:</a-col> </a-row> </div> <condition :formData="{ ...item, conditionType: '01' }" /> </a-collapse-panel> - </a-collapse> + </a-collapse> --> + <a-row v-for="(item, index) in benefitData" :key="item.benefitCode" class="policy_line" :gutter="10"> + <a-col :span="12">{{item.benefitCode + ' ' +item.benefitDesc}}</a-col> + <a-col :span="12" class="border-r"> + <a-row :gutter="10"> + <a-col :span="12">{{item.benefitConditionDesc}}</a-col> + <a-col :span="12" class="border-r" v-if="item.remainingQuota || item.remainingQuota === 0"> + <a-row v-if="item.isEditRemainingQuota"> + <a-col :span="14"> + <a-input v-model="remainingQuotaForm[item.benefitCode]" placeholder="请输入剩余金é¢"></a-input> + </a-col> + <a-col :span="10"> + <a-button type="link" @click="saveRemainingQuota(item, index)">ä¿å˜</a-button> + <a-button type="link" @click="editRemainingQuota(item, index)">å–æ¶ˆ</a-button> + </a-col> + </a-row> + <p v-else @dblclick="editRemainingQuota(item, index)" title="åŒå‡»å¯ç¼–辑剩余金é¢">剩余{{item.remainingQuota}}å…ƒ</p> + </a-col> + </a-row> + </a-col> + </a-row> </div> </template> <script> -import condition from "../condition"; export default { props: { @@ -52,21 +71,56 @@ export default { }, }, components: { - condition, }, data() { return { benefitData: [], activeKeys: "", + remainingQuotaForm: {} }; }, mounted() { this._getBenefitData(); }, methods: { + // 编辑剩余金é¢çš„æ‰“å¼€ä¸Žå–æ¶ˆ + editRemainingQuota(data, index) { + const val = data.isEditRemainingQuota + if (! val) { + this.remainingQuotaForm[data.benefitCode] = data.remainingQuota; + } + this.$set(this.benefitData[index], 'isEditRemainingQuota', !val) + }, + // 剩余金é¢ä¿å˜ + saveRemainingQuota(data, index) { + const { benefitCode, corpCode, coverageCode, patientId, payorCode, planCode } = data; + const remainingQuota = this.remainingQuotaForm[benefitCode] + if (! remainingQuota) { + this.$message.error('剩余金é¢ä¸èƒ½ä¸ºç©º') + return false; + } + if (! /^\d+$|^\d*\.\d+$/g.test(remainingQuota)) { + this.$message.error('剩余金é¢åº”该为数å—') + return false; + } + const params = { + benefitCode, corpCode, coverageCode, patientId, payorCode, planCode, + remainingQuota, + quotaType: '01' // é¢åº¦ç±»åž‹ï¼ˆ01:ç¦åˆ©é¢åº¦ 02:责任é¢åº¦ 03:计划é¢åº¦ï¼‰ + } + this.$apis.SETREMAININGQUOTA(params).then(res => { + if(res.returnCode === '0000') { + this.$message.success(res.returnMsg || 'ä¿å˜æˆåŠŸ') + this.editRemainingQuota(data, index) // 转æ¢ç¼–è¾‘çŠ¶æ€ + this.benefitData[index].remainingQuota = remainingQuota // 直接赋值, å°±ä¸è¯·æ±‚æ•°æ®åˆå§‹åŒ–了 + } else { + this.$message.error(res.returnMsg || 'ä¿å˜å¤±è´¥') + } + }) + }, _getBenefitData() { const { corpCode, coverageCode, payorCode, planCode } = this.formData; - const data = { corpCode, coverageCode, payorCode, planCode }; + const data = { corpCode, coverageCode, payorCode, planCode, patientId: this.formData.id }; this.$apis.GETBENEFITLIST(data).then((res) => { this.benefitData = res.content || []; }); @@ -77,7 +131,7 @@ export default { <style lang="less" scoped> .benefits { - .pa(0, 20, 10, 20); + .pa(0, 0, 10, 0); background-color: #fff; .save-btn { .mg-t(20); @@ -88,10 +142,14 @@ export default { } } .policy_line { + display: flex; + align-items: center; .pa(0, 30, 0, 30); - line-height: 60px; - // &:not(:last-child) { + min-height: 60px; + line-height: 1.5; border-bottom: 1px solid #f8fafb; - // } + .border-r{ + border-right: 1px solid #f8fafb; + } } </style> diff --git a/src/views/welfare/info/components/condition/index.vue b/src/views/welfare/info/components/condition/index.vue index 30312c01568cff22505851d845f4a64399a75961..0ad4e60f63d0045389867cb52b49b846d139058c 100644 --- a/src/views/welfare/info/components/condition/index.vue +++ b/src/views/welfare/info/components/condition/index.vue @@ -24,13 +24,14 @@ export default { { title: "æ¡ä»¶ç±»åž‹", dataIndex: "frequencyDesc" }, { title: "æ¡ä»¶å†…容", dataIndex: "limitDesc" }, // { title: "最å°å€¼", dataIndex: "minValue" }, - { title: "ç¦åˆ©é™åˆ¶", dataIndex: "maxValue", customRender: (val, row) => { - if (row.limitCode.indexOf('07') === 0) { - return val + '%' - } - return val - }}, - { title: "剩余金é¢", dataIndex: "leftValue" } + // { title: "ç¦åˆ©é™åˆ¶", dataIndex: "maxValue", customRender: (val, row) => { + // if (row.limitCode.indexOf('07') === 0) { + // return val + '%' + // } + // return val + // }}, + { title: "剩余金é¢", dataIndex: "leftValue" }, + { title: "备注", dataIndex: "remark" } ]; return { columns, diff --git a/src/views/welfare/info/components/coverages/index.vue b/src/views/welfare/info/components/coverages/index.vue index 5ca810be1d4ccdcfeff58186585c40ac1f8bbf63..560dec4ad3d4738becee7551a04e3c4e108e038f 100644 --- a/src/views/welfare/info/components/coverages/index.vue +++ b/src/views/welfare/info/components/coverages/index.vue @@ -2,12 +2,14 @@ <div> <!-- 分类 --> <div class="classify clearfix"> - <a-button @click="specialtyChange('')" :type="!type ? 'primary' : ''"> - 全部 - </a-button> - <a-button @click="specialtyChange(item.specialtyCode)" :type="item.specialtyCode === type ? 'primary' : ''" v-for="item in welfareType" :key="item.specialtyCode"> - {{ item.specialtyDesc }} - </a-button> + <div class="classify-btns"> + <a-button @click="specialtyChange(null)" :type="!type || !type.length ? 'primary' : ''"> + 全部 + </a-button> + <a-button @click="specialtyChange(item.specialtyCode)" :type="type.indexOf(item.specialtyCode) > -1 ? 'primary' : ''" v-for="item in welfareType" :key="item.specialtyCode"> + {{ item.specialtyDesc }} + </a-button> + </div> <div class="save-btn"> <!-- <a-button type="primary" @click="addNew"> <Icon name="ssiadd" :size="14" />新增 @@ -29,7 +31,7 @@ <a-col :span="6">赔付比例:</a-col> </a-row> </div> - <condition :formData="{ ...item, conditionType: '02' }" /> + <condition class="conditions" :formData="{ ...item, conditionType: '02' }" /> <benefits :formData="item" /> </a-collapse-panel> </a-collapse> @@ -56,7 +58,7 @@ export default { activeKeys: "", coverageData: [], expandedRowKeys: [], - type: "", + type: [], welfareType: [], pager: { pageNum: 1, @@ -80,7 +82,7 @@ export default { immediate: true, deep: true, handler: function () { - this.type = ""; + this.type = []; this._getCoverageList(); }, }, @@ -116,7 +118,12 @@ export default { this.coverageData.splice(index, 1); }, specialtyChange(code) { - this.type = code; + if (code || code == 0) { + this.type.push(code) + } else { + this.type = []; + } + console.log(code, code || code == 0, this.type) this._getCoverageList(); }, // 选择框ç›é€‰ @@ -149,7 +156,7 @@ export default { corpCode, payorCode, planCode, - specialtyCode: this.type, + specialtyCode: this.type ? this.type.join(';') : this.type, }).then((res) => { this.coverageData = res.content || []; }); @@ -178,17 +185,31 @@ export default { } } .classify { - .pa(10, 20, 10, 20); + .pa(0, 20, 0, 20); .mg-t(30); .mg-b(10); + display: flex; + align-items: center; + justify-content: space-between; background-color: #f8fafb; .ant-btn:not(:first-child) { .mg-l(30); } + .classify-btns{ + .pa(10, 0, 10, 0); + flex: 1; + overflow-x: auto; + white-space: nowrap; + } .save-btn { + width: 160px; + text-align: center; float: right; } } +.conditions{ + .pa(0, 30, 0, 30) +} .icon-class { .mg-r(10); } diff --git a/src/views/welfare/info/index.vue b/src/views/welfare/info/index.vue index 139894d54d50118bef22311b0726f4dd4c7ae9be..e9f038d747ef2281c3e70f9173b926c400f4fe51 100644 --- a/src/views/welfare/info/index.vue +++ b/src/views/welfare/info/index.vue @@ -120,6 +120,7 @@ export default { sex: undefined, idNo: undefined, payorId: undefined, + cardNo: undefined }, detailForm: {}, coverageForm: {},