| | |
| | | } |
| | | |
| | | #loader-wrapper .load_title { |
| | | font-family: 'Open Sans'; |
| | | font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", Arial, sans-serif; |
| | | color: #FFF; |
| | | font-size: 19px; |
| | | width: 100%; |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | // æ¥è¯¢å¨å®å»å¤åè¡¨ï¼æ°æ®æºï¼è§å¾ v_service_donateorgan_registerï¼ |
| | | export function listRegister(query) { |
| | | return request({ |
| | | url: '/project/register/list', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // æ¥è¯¢å¨å®å»å¤è¯¦ç» |
| | | export function getRegister(id) { |
| | | return request({ |
| | | url: '/project/register/' + id, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // 导åºå¨å®å»å¤å表 |
| | | export function exportRegister(query) { |
| | | return request({ |
| | | url: '/project/register/export', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | // ============================================================ |
| | | // ç»ä»¶é»è®¤å¤è§ï¼éæä»¤çå±ï¼ |
| | | // ------------------------------------------------------------ |
| | | // ç®çï¼ä¸æ¹ä»»ä½ä¸å¡é¡µé¢æ¨¡æ¿ï¼ç¨å
¨å±æ ·å¼æ Element çé»è®¤è§æ |
| | | // ç»ä¸æ"ç´§åãæ¸
ç½ãä¸ä¸"çä¸å¥ã |
| | | // éç¹ï¼è¡¨æ ¼ï¼æé©¬çº¹/å»ç«çº¿/表头åºè²ï¼ã表åãæé®ãå¼¹çªãæ ç¾ã |
| | | // 顺åºï¼å¿
é¡»æäº element-ui ä¸ ruoyi.scssï¼è§ main.jsï¼ã |
| | | // ============================================================ |
| | | |
| | | // ---------- å
¨å±æç ---------- |
| | | body { |
| | | font-family: var(--opo-font-family-base); |
| | | font-size: var(--opo-font-size-base); |
| | | color: var(--opo-text-primary); |
| | | background-color: var(--opo-bg-page); |
| | | } |
| | | |
| | | // è¦ç index.scss éç label { font-weight: 700 } |
| | | label { |
| | | font-weight: 400; |
| | | } |
| | | |
| | | .app-container { |
| | | // 2026-10-22ï¼ç»ä¸æ¶ç´§ä¸º 8/12/12ï¼å 12/16ï¼ï¼å
¨ç«å表页ä¸è´ |
| | | padding: 8px 12px 12px; |
| | | } |
| | | |
| | | // æ°åç±»åæ®µï¼éé¢/ç¼å·/身份è¯ï¼å¯ç¨æ¤ç±»è·å¾ç宽æ°å |
| | | .opo-number { |
| | | font-family: var(--opo-font-family-number); |
| | | font-variant-numeric: tabular-nums; |
| | | } |
| | | |
| | | // ---------- è¡¨æ ¼ ---------- |
| | | // 2026-10-22ï¼æ°æ®è¡åå·ä¸è¡¨å¤´ç»ä¸ï¼14px / 常è§åéï¼ |
| | | // 注æï¼å
¨å± size=small ä¼è®©æ¯ä¸ªè¡¨æ ¼å¸¦ä¸ .el-table--smallï¼ |
| | | // Element ç¨å®æåå·åå 12pxãåå
æ ¼ padding åå 8pxï¼ |
| | | // æä»¥è¿éå¿
须忶æé«éæ©å¨ç¹å¼æ§ï¼å¦åä¼è¢«ååå»ã |
| | | .el-table, |
| | | .el-table.el-table--small, |
| | | .el-table.el-table--medium, |
| | | .el-table.el-table--mini, |
| | | .el-table.el-table--large { |
| | | color: var(--opo-text-primary); |
| | | font-size: var(--opo-font-size-sm); |
| | | } |
| | | |
| | | .el-table { |
| | | th, |
| | | th.el-table__cell { |
| | | background-color: var(--opo-bg-thead) !important; |
| | | color: var(--opo-text-primary); |
| | | // 表头ä¸å ç²ï¼2026-10-22 åé¦ï¼ |
| | | font-weight: 400; |
| | | font-size: var(--opo-font-size-sm); |
| | | height: 40px; |
| | | padding: 0; |
| | | } |
| | | |
| | | td, |
| | | td.el-table__cell, |
| | | &.el-table--small td.el-table__cell, |
| | | &.el-table--medium td.el-table__cell, |
| | | &.el-table--mini td.el-table__cell { |
| | | padding: 9px 0; |
| | | // è¡åé线ï¼2026-10-22 åå æ·±ä¸æ¡£ï¼ |
| | | border-bottom: 1px solid var(--opo-table-border, #c8cfd8); |
| | | } |
| | | |
| | | // è¡¨æ ¼åºé¨é£æ¡çº¿ |
| | | &::before { |
| | | background-color: var(--opo-table-border, #c8cfd8); |
| | | } |
| | | |
| | | // 带边æ¡çè¡¨æ ¼ï¼å¤æ¡çº¿ |
| | | &.el-table--border { |
| | | border-color: var(--opo-table-border, #c8cfd8); |
| | | } |
| | | |
| | | .cell { |
| | | line-height: 23px; |
| | | } |
| | | |
| | | // 表头ä¸å
容åºçåéçº¿ï¼æ¯è¡çº¿åæ·±ä¸ç¹ï¼ä½ä¸ºåçï¼ |
| | | .el-table__header-wrapper th { |
| | | border-bottom: 1px solid var(--opo-table-border-strong, #b7c0cc); |
| | | } |
| | | |
| | | // æé©¬çº¹ï¼ç¨ CSS å®ç°ï¼æ éç» 162 ä¸ªè¡¨æ ¼é个å stripe 屿§ |
| | | .el-table__body tr:nth-child(2n) > td, |
| | | .el-table__body tr:nth-child(2n) > td.el-table__cell { |
| | | background-color: var(--opo-bg-stripe); |
| | | } |
| | | |
| | | // é¼ æ è¡é«äº®ï¼è¦çæé©¬çº¹ï¼Element é»è®¤ hover è²åç°ï¼ |
| | | .el-table__body tr:hover > td, |
| | | .el-table__body tr:hover > td.el-table__cell { |
| | | background-color: var(--opo-primary-light-95, #f5f9fd); |
| | | } |
| | | |
| | | // 廿ç«çº¿ï¼border 屿§ä»ä¿ç卿¨¡æ¿éï¼è¿éåªè®©å®å¨è§è§ä¸æ¶å¤± |
| | | &.el-table--border td, |
| | | &.el-table--border th, |
| | | &.el-table--border th.el-table__cell, |
| | | &.el-table--border td.el-table__cell { |
| | | border-right: none; |
| | | } |
| | | |
| | | &.el-table--border::after, |
| | | &.el-table--group::after { |
| | | display: none; |
| | | } |
| | | |
| | | .el-table__empty-text { |
| | | color: var(--opo-text-placeholder); |
| | | font-size: var(--opo-font-size-sm); |
| | | } |
| | | } |
| | | |
| | | // éè¦"å¼ºç½æ ¼çº¿"çæç»å½å
¥è¡¨ï¼æ¨¡æ¿ä¸å class="table-bordered" å³å¯æ¢å¤ |
| | | .el-table.table-bordered { |
| | | border: 1px solid var(--opo-table-border, #c8cfd8); |
| | | |
| | | td, |
| | | th, |
| | | td.el-table__cell, |
| | | th.el-table__cell { |
| | | border-right: 1px solid var(--opo-table-border, #c8cfd8); |
| | | } |
| | | } |
| | | |
| | | // è¡¨æ ¼å
æé®æ´ç´§åï¼é¿å
æè¡æé« |
| | | .el-table .el-button--mini, |
| | | .el-table .el-button--small { |
| | | padding: 5px 8px; |
| | | } |
| | | |
| | | // ---------- 表å ---------- |
| | | // æ¥è¯¢æ¡ä»¶/è¡¨åæ´ä½æ¶ç´§ï¼Element é»è®¤ margin-bottom 22pxï¼è¡è·ææ¾å大 |
| | | .el-form-item { |
| | | margin-bottom: 12px; |
| | | |
| | | &__label { |
| | | font-weight: 400; |
| | | color: var(--opo-text-regular); |
| | | // æ ç¾ä¿æ 14pxï¼æ¥è¯¢åºå¤§éä½¿ç¨ label-width="68px"/"70px"ï¼ |
| | | // æ ç¾è¥éæ£æåå° 16pxï¼4 个åï¼å¦"æç®æ¡ä¾"ï¼å°±ä¼æ¢è¡ãè¡é«ç¿»å |
| | | font-size: var(--opo-font-size-sm); |
| | | padding-right: 8px; |
| | | line-height: 32px; |
| | | } |
| | | |
| | | &__content { |
| | | line-height: 32px; |
| | | min-height: 32px; |
| | | } |
| | | |
| | | &.is-required:not(.is-no-asterisk) > .el-form-item__label:before { |
| | | color: var(--opo-danger); |
| | | } |
| | | |
| | | &__error { |
| | | font-size: var(--opo-font-size-xs); |
| | | line-height: 1.4; |
| | | padding-top: 2px; |
| | | } |
| | | } |
| | | |
| | | // 横åæåçæ¥è¯¢æ¡ä»¶åç´§å䏿¡£ |
| | | .el-form--inline .el-form-item { |
| | | margin-right: 12px; |
| | | margin-bottom: 8px; |
| | | } |
| | | |
| | | // ---------- ç´§åæ¥è¯¢åºï¼opt-inï¼ ---------- |
| | | // ç¨æ³ï¼ç»æ¥è¯¢ç¨ç el-form å class="opo-query-form"ï¼å表页ç»ä¸çº¦å®ï¼ |
| | | // è¡è· 8â4pxãæ ç¾ä¸æ§ä»¶å¯¹é½ãæåä¸è¡ï¼æç´¢/éç½®ï¼å»æä¸è¾¹è· |
| | | .opo-query-form { |
| | | // æ¥è¯¢æ¡ä»¶ä¸ä¸æ¹"æ°å¢/导åº"å·¥å
·æ ï¼å¯¹è¡¨æ ¼çæä½ï¼ä¹é´çåºé´è· |
| | | margin-bottom: 12px; |
| | | |
| | | .el-form-item { |
| | | margin-right: 8px; |
| | | margin-bottom: 4px; |
| | | } |
| | | |
| | | .el-form-item__label { |
| | | line-height: 32px; |
| | | padding-right: 6px; |
| | | } |
| | | |
| | | .el-form-item__content { |
| | | line-height: 32px; |
| | | min-height: 32px; |
| | | } |
| | | |
| | | // æåä¸è¡é常æ¯"æç´¢/éç½®"ï¼ä¸åé¢å¤çç½ |
| | | > .el-row:last-child .el-form-item { |
| | | margin-bottom: 0; |
| | | } |
| | | } |
| | | |
| | | // ç´§è·æ¥è¯¢åºä¹åçå·¥å
·æ è¡ï¼æ°å¢/导åºï¼ï¼è´´è¿è¡¨æ ¼ï¼ä¸æ¥è¯¢åºç± margin-bottom éå¼ |
| | | .opo-query-form + .el-row.mb8 { |
| | | margin-bottom: 4px; |
| | | } |
| | | |
| | | // 页é¢éçæ¥è¯¢åºå¸¸å
å¨å¡çæ el-row ä¸ï¼å»æå¤ä½çå¤å±çç½ |
| | | .el-card__body > .el-form:first-child, |
| | | .el-card__body > .el-row:first-child .el-form { |
| | | margin-bottom: 0; |
| | | } |
| | | |
| | | .el-input__inner, |
| | | .el-textarea__inner { |
| | | border-radius: var(--opo-radius-base); |
| | | color: var(--opo-text-primary); |
| | | |
| | | &::placeholder { |
| | | color: var(--opo-text-placeholder); |
| | | } |
| | | } |
| | | |
| | | // ---------- æé® ---------- |
| | | .el-button { |
| | | border-radius: var(--opo-radius-base); |
| | | font-weight: 400; |
| | | |
| | | [class*='el-icon-'] + span { |
| | | margin-left: 4px; |
| | | } |
| | | } |
| | | |
| | | // å°/è¿·ä½ æé®çåå·å¨ Element éæ¯ç¡¬ç¼ç 12pxï¼éæ£æä¸èµ·ä¸è°ï¼2026-10-22 å大ä¸å· â 16pxï¼ |
| | | .el-button--small, |
| | | .el-button--mini { |
| | | font-size: var(--opo-font-size-base); |
| | | } |
| | | |
| | | // ---------- å¼¹çª ---------- |
| | | .el-dialog { |
| | | border-radius: var(--opo-radius-lg); |
| | | box-shadow: var(--opo-shadow-lg); |
| | | overflow: hidden; |
| | | |
| | | &__header { |
| | | padding: 16px 20px 12px; |
| | | border-bottom: 1px solid var(--opo-border-light); |
| | | } |
| | | |
| | | &__title { |
| | | font-size: var(--opo-font-size-lg); |
| | | font-weight: 600; |
| | | color: var(--opo-text-primary); |
| | | } |
| | | |
| | | &__body { |
| | | padding: 16px 20px; |
| | | color: var(--opo-text-regular); |
| | | } |
| | | |
| | | &__footer { |
| | | padding: 12px 20px 16px; |
| | | border-top: 1px solid var(--opo-border-light); |
| | | } |
| | | } |
| | | |
| | | .el-drawer__header { |
| | | padding: 16px 20px; |
| | | margin-bottom: 0; |
| | | border-bottom: 1px solid var(--opo-border-light); |
| | | color: var(--opo-text-primary); |
| | | font-weight: 600; |
| | | } |
| | | |
| | | // ---------- æ ç¾ ---------- |
| | | .el-tag { |
| | | border-radius: var(--opo-radius-sm); |
| | | font-size: var(--opo-font-size-xs); |
| | | } |
| | | |
| | | // ---------- å¡ç ---------- |
| | | .el-card { |
| | | border-radius: var(--opo-radius-lg); |
| | | border-color: var(--opo-border-light); |
| | | box-shadow: var(--opo-shadow-sm) !important; |
| | | |
| | | &__header { |
| | | padding: 14px 16px 10px; |
| | | border-bottom: 1px solid var(--opo-border-light); |
| | | font-weight: 600; |
| | | color: var(--opo-text-primary); |
| | | } |
| | | |
| | | &__body { |
| | | padding: 12px 16px; |
| | | } |
| | | } |
| | | |
| | | // ---------- å页 ---------- |
| | | // Element æå页æååæ» 13pxãåé 700ï¼å 16px çè¡¨æ ¼æ£æä¸æ â ç»ä¸ 14px/å¸¸è§ |
| | | .el-pagination { |
| | | font-weight: 400; |
| | | color: var(--opo-text-regular); |
| | | font-size: var(--opo-font-size-sm); |
| | | |
| | | button, |
| | | span:not([class*='suffix']) { |
| | | font-size: var(--opo-font-size-sm); |
| | | } |
| | | |
| | | .el-pager li { |
| | | font-size: var(--opo-font-size-sm); |
| | | } |
| | | } |
| | | |
| | | .pagination-container { |
| | | margin-top: 12px; |
| | | height: auto; |
| | | padding: 8px 16px !important; |
| | | } |
| | | |
| | | // ---------- é¢å
å± / é¡µç¾ ---------- |
| | | .el-breadcrumb { |
| | | font-size: var(--opo-font-size-sm); |
| | | |
| | | &__inner, |
| | | &__inner a { |
| | | font-weight: 400 !important; |
| | | color: var(--opo-text-secondary); |
| | | } |
| | | |
| | | &__item:last-child .el-breadcrumb__inner { |
| | | color: var(--opo-text-primary); |
| | | } |
| | | } |
| | | |
| | | // ---------- æç¤º / æ¶æ¯ ---------- |
| | | .el-message { |
| | | border-radius: var(--opo-radius-base); |
| | | box-shadow: var(--opo-shadow-md); |
| | | } |
| | | |
| | | .el-tooltip__popper { |
| | | font-size: var(--opo-font-size-xs); |
| | | } |
| | | |
| | | // ---------- æ»å¨æ¡ï¼è§æç»èï¼ ---------- |
| | | ::-webkit-scrollbar { |
| | | width: 8px; |
| | | height: 8px; |
| | | } |
| | | |
| | | ::-webkit-scrollbar-thumb { |
| | | background-color: rgba(0, 0, 0, 0.18); |
| | | border-radius: var(--opo-radius-pill); |
| | | |
| | | &:hover { |
| | | background-color: rgba(0, 0, 0, 0.28); |
| | | } |
| | | } |
| | | |
| | | ::-webkit-scrollbar-track { |
| | | background-color: transparent; |
| | | } |
| | |
| | | /** |
| | | * I think element-ui's default theme color is too light for long-term use. |
| | | * So I modified the default color and you can modify it to your liking. |
| | | **/ |
| | | * Element UI 主é¢åéï¼ç¼è¯æï¼ |
| | | * ------------------------------------------------------------ |
| | | * åç主è²ï¼åèª src/assets/logo/OPO_Logo.png åç¯é #0E768F |
| | | * å±é©è²ï¼ åèªåå¾å¿å½¢ç«çº¢ #CD1D4Eï¼ç½å对æ¯åº¦ 5.41ï¼ä¼äºå #F56C6C ç 3.4ï¼ |
| | | * |
| | | * 说æï¼è¿éå³å®"ç¼è¯è¿ CSS çé»è®¤ç®è¤"ï¼ |
| | | * è¿è¡æ¶æ¢è¤ç± assets/styles/theme-runtime.scss + utils/theme.js è´è´£ï¼ |
| | | * äºè
éè¿ CSS åé --opo-primary* è¡æ¥ã |
| | | */ |
| | | |
| | | /* theme color */ |
| | | $--color-primary: #1890ff; |
| | | $--color-success: #13ce66; |
| | | $--color-warning: #ffba00; |
| | | $--color-danger: #ff4949; |
| | | // $--color-info: #1E1E1E; |
| | | /* ---------- 主é¢è² ---------- */ |
| | | $--color-primary: #0E768F; |
| | | $--color-success: #67C23A; |
| | | $--color-warning: #E6A23C; |
| | | $--color-danger: #CD1D4E; |
| | | $--color-info: #909399; |
| | | |
| | | /* ---------- æå ---------- */ |
| | | $--color-text-primary: #1F2937; |
| | | $--color-text-regular: #4B5563; |
| | | $--color-text-secondary: #6B7280; |
| | | $--color-text-placeholder: #9CA3AF; |
| | | |
| | | /* ---------- è¾¹æ¡ ---------- */ |
| | | $--border-color-base: #E5E7EB; |
| | | $--border-color-light: #F0F2F5; |
| | | $--border-color-lighter: #F5F7FA; |
| | | $--border-color-extra-light: #FAFBFC; |
| | | |
| | | /* ---------- èæ¯ ---------- */ |
| | | $--background-color-base: #F5F7FA; |
| | | |
| | | /* ---------- åè§ ---------- */ |
| | | $--border-radius-base: 4px; |
| | | $--border-radius-small: 2px; |
| | | |
| | | /* ---------- åå·ï¼2026-10-22 æ´ä½ä¸è°ä¸å·ï¼ ---------- */ |
| | | $--font-size-extra-large: 22px; |
| | | $--font-size-large: 20px; |
| | | $--font-size-medium: 18px; |
| | | $--font-size-base: 16px; |
| | | $--font-size-small: 14px; |
| | | $--font-size-extra-small: 13px; |
| | | |
| | | /* æé®åå·é»è®¤å¨å°å°ºå¯¸é被硬ç¼ç æ 12pxï¼ä¸å¹¶ä¸è° */ |
| | | $--button-font-size: 16px; |
| | | $--button-medium-font-size: 16px; |
| | | $--button-small-font-size: 14px; |
| | | $--button-mini-font-size: 14px; |
| | | |
| | | /* ä¾§è¾¹æ èååå·ï¼2026-10-22 ç± 18px åè°ä¸å·ï¼ */ |
| | | $--menu-item-font-size: 16px; |
| | | |
| | | $--button-font-weight: 400; |
| | | |
| | | // $--color-text-regular: #1f2d3d; |
| | | |
| | | $--border-color-light: #dfe4ed; |
| | | $--border-color-lighter: #e6ebf5; |
| | | |
| | | $--table-border:1px solid#dfe6ec; |
| | | /* ---------- è¡¨æ ¼ ---------- */ |
| | | $--table-border: 1px solid #E5E7EB; |
| | | |
| | | /* icon font path, required */ |
| | | $--font-path: '~element-ui/lib/theme-chalk/fonts'; |
| | |
| | | -moz-osx-font-smoothing: grayscale; |
| | | -webkit-font-smoothing: antialiased; |
| | | text-rendering: optimizeLegibility; |
| | | font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif; |
| | | font-family: $opo-font-family-base; |
| | | } |
| | | |
| | | // è¡¨åæ ç¾ä¸åå
¨å±å ç²ï¼åæ¥ 700 让ææé¡µé¢æ¾å¾å¾"é"ï¼ |
| | | label { |
| | | font-weight: 700; |
| | | font-weight: 400; |
| | | } |
| | | |
| | | html { |
| | |
| | | border-radius: 2px; |
| | | display: block; |
| | | line-height: 32px; |
| | | font-size: 16px; |
| | | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; |
| | | font-size: $opo-font-size-lg; |
| | | font-family: $opo-font-family-base; |
| | | color: #2c3e50; |
| | | -webkit-font-smoothing: antialiased; |
| | | -moz-osx-font-smoothing: grayscale; |
| | |
| | | * Copyright (c) 2019 ruoyi |
| | | */ |
| | | |
| | | /* 设计令çï¼æ¬æä»¶ä¸ºç¬ç«å
¥å£ï¼éèªè¡å¼å
¥åéï¼ */ |
| | | @import './tokens.scss'; |
| | | |
| | | /** åºç¡éç¨ **/ |
| | | .pt5 { |
| | | padding-top: 5px; |
| | |
| | | .el-table__header-wrapper, .el-table__fixed-header-wrapper { |
| | | th { |
| | | word-break: break-word; |
| | | background-color: #f8f8f9; |
| | | color: #515a6e; |
| | | background-color: $opo-bg-thead; |
| | | color: $opo-text-primary; |
| | | height: 40px; |
| | | font-size: 13px; |
| | | font-size: $opo-font-size-sm; |
| | | } |
| | | } |
| | | .el-table__body-wrapper { |
| | |
| | | /** è¡¨æ ¼æ´å¤æä½ä¸ææ ·å¼ */ |
| | | .el-table .el-dropdown-link { |
| | | cursor: pointer; |
| | | color: #409EFF; |
| | | color: var(--opo-primary, #0E768F); |
| | | margin-left: 5px; |
| | | } |
| | | |
| | |
| | | width: 100% !important; |
| | | } |
| | | |
| | | // èååå·ï¼æ¯æ£æå¤§ä¸¤å·ï¼æ£æ 16px â èå 18pxï¼ |
| | | .el-menu-item, |
| | | .el-submenu__title { |
| | | font-size: $opo-font-size-menu; |
| | | } |
| | | |
| | | .el-menu-item, .el-submenu__title { |
| | | overflow: hidden !important; |
| | | text-overflow: ellipsis !important; |
| | | white-space: nowrap !important; |
| | | } |
| | | |
| | | // menu hover |
| | | // menu hoverï¼æ·±è²åºä¸ç¨éç½ï¼åæ¥ rgba(0,0,0,.06) 卿·±è²ä¸çä¸åºæ¥ï¼ |
| | | .submenu-title-noDropdown, |
| | | .el-submenu__title { |
| | | &:hover { |
| | | background-color: rgba(0, 0, 0, 0.06) !important; |
| | | background-color: rgba(255, 255, 255, 0.08) !important; |
| | | } |
| | | } |
| | | |
| | |
| | | min-width: $base-sidebar-width !important; |
| | | |
| | | &:hover { |
| | | background-color: rgba(0, 0, 0, 0.06) !important; |
| | | background-color: rgba(255, 255, 255, 0.08) !important; |
| | | } |
| | | } |
| | | |
| | |
| | | &:hover { |
| | | background-color: $base-sub-menu-hover !important; |
| | | } |
| | | } |
| | | |
| | | // ---- å½åéä¸èåé«äº® ---- |
| | | // åç¶ï¼Element ç¼è¯åºç .el-menu-item.is-active æ¯ä¸»è²æåï¼ |
| | | // å¨åæ ·æ¯éè²çæ·±è²ä¾§è¾¹æ ä¸å ä¹çä¸è§ â æ¹ä¸º"åçéå®åº + ç½å + 左侧亮æ¡" |
| | | & .el-menu-item.is-active { |
| | | position: relative; |
| | | color: #ffffff !important; |
| | | background-color: $opo-primary !important; |
| | | font-weight: 500; |
| | | |
| | | &::before { |
| | | content: ''; |
| | | position: absolute; |
| | | left: 0; |
| | | top: 0; |
| | | bottom: 0; |
| | | width: 3px; |
| | | background-color: #ffffff; |
| | | } |
| | | |
| | | &:hover { |
| | | background-color: $opo-primary !important; |
| | | } |
| | | } |
| | | |
| | | // ç¶çº§åç»åªæ¯"å
å«éä¸é¡¹"ï¼ç¨å¼±ä¸ç¹çåºè²ï¼é¿å
åå¶å项䏿 ·é |
| | | & .el-submenu.is-active > .el-submenu__title { |
| | | background-color: rgba(255, 255, 255, 0.1) !important; |
| | | color: #ffffff !important; |
| | | } |
| | | } |
| | | |
| | |
| | | .nest-menu .el-submenu>.el-submenu__title, |
| | | .el-menu-item { |
| | | &:hover { |
| | | // you can use $subMenuHover |
| | | background-color: rgba(0, 0, 0, 0.06) !important; |
| | | // æ·±è²èåç¨éç½è¦ç |
| | | background-color: rgba(255, 255, 255, 0.08) !important; |
| | | } |
| | | } |
| | | |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | // ============================================================ |
| | | // è¿è¡æ¶ä¸»é¢å±ï¼CSS åéæ¶è´¹æ¹ï¼ |
| | | // ------------------------------------------------------------ |
| | | // Element UI 2.x ç主é¢è²æ¯ SCSS ç¼è¯æå¸¸éï¼æ æ³å¨è¿è¡æ¶ä¿®æ¹ã |
| | | // æ¬æä»¶ä¸æ¹ Element æºç ï¼åª"éåç¨å°ä¸»è²çéæ©å¨"ï¼å¼æ¹ä¸º |
| | | // var(--opo-primary*)ï¼è¿äºåéç± utils/theme.js å¨åæ¢ç®è¤æ¶åå
¥ |
| | | // :rootï¼å æ¤æ¢è¤æ ééæ°ç¼è¯ãæ éå·æ°é¡µé¢ã |
| | | // |
| | | // è¦ç顺åºå¾å
³é®ï¼æ¬æä»¶å¿
é¡»å¨ element-ui ä¸ ruoyi.scss ä¹åå¼å
¥ |
| | | // ï¼è§ main.js ç import 顺åºï¼ã |
| | | // è¦çèå´ï¼æé®/龿¥/è¾å
¥/åéå¤éå¼å
³/Tabs/å页/è¡¨æ ¼/æ¥éª¤æ¡/ |
| | | // æ¥æ/䏿/å è½½/è¿åº¦ï¼å
¶ä½ç»ä»¶æéè¡¥å
ã |
| | | // ============================================================ |
| | | |
| | | $opo-fallback: #0E768F; |
| | | |
| | | // ---------- æé® ---------- |
| | | .el-button--primary { |
| | | background-color: var(--opo-primary, #{$opo-fallback}); |
| | | border-color: var(--opo-primary, #{$opo-fallback}); |
| | | color: #fff; |
| | | |
| | | &:hover, |
| | | &:focus { |
| | | background-color: var(--opo-primary-hover, #{$opo-fallback}); |
| | | border-color: var(--opo-primary-hover, #{$opo-fallback}); |
| | | color: #fff; |
| | | } |
| | | |
| | | &:active { |
| | | background-color: var(--opo-primary-active, #{$opo-fallback}); |
| | | border-color: var(--opo-primary-active, #{$opo-fallback}); |
| | | color: #fff; |
| | | } |
| | | |
| | | &.is-disabled, |
| | | &.is-disabled:hover, |
| | | &.is-disabled:focus, |
| | | &.is-disabled:active { |
| | | background-color: var(--opo-primary-light-5, #{$opo-fallback}); |
| | | border-color: var(--opo-primary-light-5, #{$opo-fallback}); |
| | | color: #fff; |
| | | } |
| | | |
| | | &.is-plain { |
| | | background-color: var(--opo-primary-light-9, #fff); |
| | | border-color: var(--opo-primary-light-5, #{$opo-fallback}); |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | |
| | | &:hover, |
| | | &:focus, |
| | | &:active { |
| | | background-color: var(--opo-primary, #{$opo-fallback}); |
| | | border-color: var(--opo-primary, #{$opo-fallback}); |
| | | color: #fff; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .el-button--text { |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | |
| | | &:hover, |
| | | &:focus { |
| | | color: var(--opo-primary-hover, #{$opo-fallback}); |
| | | } |
| | | |
| | | &.is-disabled, |
| | | &.is-disabled:hover { |
| | | color: var(--opo-primary-light-5, #{$opo-fallback}); |
| | | } |
| | | } |
| | | |
| | | // é»è®¤æé® hover æ¶éåºåçè²ï¼åæ¥æ¯ä¸çç°ï¼ |
| | | .el-button--default:hover, |
| | | .el-button--default:focus { |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | border-color: var(--opo-primary-light-5, #{$opo-fallback}); |
| | | background-color: var(--opo-primary-light-9, #fff); |
| | | } |
| | | |
| | | // ---------- 龿¥ ---------- |
| | | .el-link.el-link--primary { |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | |
| | | &:hover { |
| | | color: var(--opo-primary-light-3, #{$opo-fallback}); |
| | | } |
| | | } |
| | | |
| | | // ---------- è¾å
¥ç±» ---------- |
| | | .el-input__inner:focus, |
| | | .el-textarea__inner:focus, |
| | | .el-input__inner:hover { |
| | | border-color: var(--opo-primary-light-5, #{$opo-fallback}); |
| | | } |
| | | |
| | | .el-input__inner:focus, |
| | | .el-textarea__inner:focus { |
| | | border-color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | .el-select .el-input.is-focus .el-input__inner, |
| | | .el-select .el-input__inner:focus { |
| | | border-color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | .el-select-dropdown__item.selected { |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | font-weight: 600; |
| | | } |
| | | |
| | | .el-input-number__decrease:hover, |
| | | .el-input-number__increase:hover { |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | // ---------- åé / å¤é ---------- |
| | | .el-radio__input.is-checked .el-radio__inner, |
| | | .el-checkbox__input.is-checked .el-checkbox__inner, |
| | | .el-checkbox__input.is-indeterminate .el-checkbox__inner { |
| | | border-color: var(--opo-primary, #{$opo-fallback}); |
| | | background-color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | .el-radio__input.is-checked + .el-radio__label, |
| | | .el-checkbox__input.is-checked + .el-checkbox__label { |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | .el-radio-button__orig-radio:checked + .el-radio-button__inner, |
| | | .el-checkbox-button__orig-radio:checked + .el-checkbox-button__inner { |
| | | background-color: var(--opo-primary, #{$opo-fallback}); |
| | | border-color: var(--opo-primary, #{$opo-fallback}); |
| | | box-shadow: -1px 0 0 0 var(--opo-primary, #{$opo-fallback}); |
| | | color: #fff; |
| | | } |
| | | |
| | | // ---------- å¼å
³ ---------- |
| | | .el-switch.is-checked .el-switch__core { |
| | | border-color: var(--opo-primary, #{$opo-fallback}); |
| | | background-color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | // ---------- Tabs ---------- |
| | | .el-tabs__item.is-active, |
| | | .el-tabs__item:hover { |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | .el-tabs__active-bar { |
| | | background-color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | .el-tabs--border-card > .el-tabs__header .el-tabs__item.is-active { |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | border-bottom-color: transparent; |
| | | } |
| | | |
| | | // ---------- å页 ---------- |
| | | .el-pager li.active, |
| | | .el-pager li:hover { |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | .el-pagination.is-background .el-pager li:not(.disabled).active { |
| | | background-color: var(--opo-primary, #{$opo-fallback}); |
| | | color: #fff; |
| | | } |
| | | |
| | | .el-pagination button:hover { |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | // ---------- è¡¨æ ¼ ---------- |
| | | .el-table .ascending .sort-caret.ascending { |
| | | border-bottom-color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | .el-table .descending .sort-caret.descending { |
| | | border-top-color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | .el-table__body tr.current-row > td { |
| | | background-color: var(--opo-primary-light-9, #fff) !important; |
| | | } |
| | | |
| | | .el-table--enable-row-hover .el-table__body tr:hover > td { |
| | | background-color: var(--opo-primary-light-95, #f5f9fd) !important; |
| | | } |
| | | |
| | | // ---------- æ¥éª¤æ¡ ---------- |
| | | .el-step__head.is-process { |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | border-color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | .el-step__title.is-process { |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | font-weight: 600; |
| | | } |
| | | |
| | | .el-step__head.is-finish { |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | border-color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | .el-step__title.is-finish { |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | // ---------- æ¥æ / æ¶é´ ---------- |
| | | .el-date-table td.today span { |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | font-weight: 700; |
| | | } |
| | | |
| | | .el-date-table td.current:not(.disabled) span { |
| | | background-color: var(--opo-primary, #{$opo-fallback}); |
| | | color: #fff; |
| | | } |
| | | |
| | | .el-date-table td.available:hover { |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | .el-date-picker__header-label.active, |
| | | .el-date-picker__header-label:hover { |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | // ---------- 䏿 / å¼¹åºèåï¼åªä½ç¨äºå¼¹åºå±ï¼é¿å
影忷±è²ä¾§è¾¹æ ï¼ ---------- |
| | | .el-dropdown-menu__item:not(.is-disabled):hover, |
| | | .el-dropdown-menu__item:focus { |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | background-color: var(--opo-primary-light-9, #fff); |
| | | } |
| | | |
| | | .el-menu--popup .el-menu-item.is-active, |
| | | .el-menu--popup .el-menu-item:hover { |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | // ---------- 级è ---------- |
| | | .el-cascader .el-input.is-focus .el-input__inner { |
| | | border-color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | .el-cascader-node.in-active-path, |
| | | .el-cascader-node.is-active { |
| | | color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | // ---------- å è½½ / è¿åº¦ ---------- |
| | | .el-loading-spinner .path { |
| | | stroke: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | .el-progress-bar__inner { |
| | | background-color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | // ---------- æ»å ---------- |
| | | .el-slider__bar { |
| | | background-color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| | | |
| | | .el-slider__button { |
| | | border-color: var(--opo-primary, #{$opo-fallback}); |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | /* ============================================================ |
| | | * 设计令ç · CSS èªå®ä¹å±æ§ |
| | | * è¿è¡æ¶æ¢è¤åªéæ¹å¨ --opo-primary åå
¶æ´¾çè²é¶ï¼ç± utils/theme.js 注å
¥ï¼ |
| | | * è¿éç弿¯"åçé"é»è®¤å¼ï¼JS 注å
¥ç inline style ä¼è¦ç :root |
| | | * ============================================================ */ |
| | | :root { |
| | | /* åçè²ï¼é»è®¤ï¼OPO_Logo åç¯éï¼ */ |
| | | --opo-primary: #0E768F; |
| | | --opo-primary-hover: #0D6A81; |
| | | --opo-primary-active: #0B5E72; |
| | | --opo-primary-light-3: #569FB1; |
| | | --opo-primary-light-5: #87BBC7; |
| | | --opo-primary-light-7: #B7D6DD; |
| | | --opo-primary-light-8: #CFE4E9; |
| | | --opo-primary-light-9: #E7F1F4; |
| | | --opo-primary-light-95: #F3F8F9; |
| | | --opo-primary-dark-2: #0B5E72; |
| | | |
| | | /* è¯ä¹è² */ |
| | | --opo-success: #67C23A; |
| | | --opo-success-light: #F0F9EB; |
| | | --opo-warning: #E6A23C; |
| | | --opo-warning-light: #FDF6EC; |
| | | --opo-danger: #CD1D4E; |
| | | --opo-danger-light: #FBEBEF; |
| | | --opo-info: #909399; |
| | | --opo-info-light: #F4F4F5; |
| | | |
| | | /* 䏿§è² */ |
| | | --opo-text-primary: #1F2937; |
| | | --opo-text-regular: #4B5563; |
| | | --opo-text-secondary: #6B7280; |
| | | --opo-text-placeholder: #9CA3AF; |
| | | --opo-border-base: #E5E7EB; |
| | | --opo-border-light: #F0F2F5; |
| | | --opo-border-lighter: #F5F7FA; |
| | | --opo-bg-page: #F5F7FA; |
| | | --opo-bg-card: #FFFFFF; |
| | | --opo-bg-hover: #F5F9FD; |
| | | --opo-bg-stripe: #FAFBFC; |
| | | --opo-bg-thead: #F5F7FA; |
| | | |
| | | /* è¡¨æ ¼æ¡çº¿ï¼æ¯éç¨è¾¹æ¡æ´æ·±ï¼ */ |
| | | --opo-table-border: #C8CFD8; |
| | | --opo-table-border-strong: #B7C0CC; |
| | | |
| | | /* ä¾§è¾¹æ */ |
| | | --opo-sidebar-bg: #0A4655; |
| | | --opo-sidebar-sub-bg: #083B47; |
| | | --opo-sidebar-hover: rgba(14, 118, 143, 0.28); |
| | | --opo-sidebar-text: rgba(255, 255, 255, 0.72); |
| | | --opo-sidebar-text-active: #FFFFFF; |
| | | |
| | | /* åå·ï¼2026-10-22 æ´ä½ä¸è°ä¸å·ï¼æ£æ 14â16ï¼ */ |
| | | --opo-font-size-display: 34px; |
| | | --opo-font-size-h1: 26px; |
| | | --opo-font-size-h2: 20px; |
| | | --opo-font-size-lg: 18px; |
| | | --opo-font-size-base: 16px; |
| | | --opo-font-size-sm: 14px; |
| | | --opo-font-size-xs: 13px; |
| | | --opo-font-size-menu: 16px; |
| | | |
| | | /* åä½ï¼ä¸è¦ç¨ -apple-system æå¤´ï¼Windows ä¸ä¼åæ Segoe UIï¼æ°åæ¾å°ï¼ */ |
| | | --opo-font-family-base: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软é
é»", |
| | | "Helvetica Neue", Arial, sans-serif; |
| | | --opo-font-family-number: "DIN Alternate", "SF Mono", "Roboto Mono", Consolas, "Courier New", monospace; |
| | | |
| | | /* é´è· */ |
| | | --opo-space-1: 4px; |
| | | --opo-space-2: 8px; |
| | | --opo-space-3: 12px; |
| | | --opo-space-4: 16px; |
| | | --opo-space-5: 24px; |
| | | --opo-space-6: 32px; |
| | | |
| | | /* åè§ */ |
| | | --opo-radius-sm: 2px; |
| | | --opo-radius-base: 4px; |
| | | --opo-radius-lg: 8px; |
| | | --opo-radius-pill: 999px; |
| | | |
| | | /* é´å½± */ |
| | | --opo-shadow-sm: 0 1px 2px rgba(16, 24, 40, 0.06); |
| | | --opo-shadow-md: 0 4px 12px rgba(16, 24, 40, 0.08); |
| | | --opo-shadow-lg: 0 12px 32px rgba(16, 24, 40, 0.12); |
| | | |
| | | /* æ§ä»¶é«åº¦ */ |
| | | --opo-control-height-small: 32px; |
| | | --opo-control-height-base: 36px; |
| | | } |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | // ============================================================ |
| | | // 设计令çï¼Design Tokensï¼Â· SCSS åé |
| | | // åçè²åèª src/assets/logo/OPO_Logo.png åç¯é #0E768F |
| | | // 说æè§ï¼æ¹æ¡-å端çé¢è§è§ä¼åæ¹æ¡.md |
| | | // 约å®ï¼ä¸å¡æ ·å¼ä¸å¾å¼ç¨è¿éçåéï¼ç¦æ¢åå裸è²å¼ |
| | | // ============================================================ |
| | | |
| | | // ---------- åçè²ï¼éï¼ ---------- |
| | | $opo-primary: #0E768F; |
| | | $opo-primary-hover: #0D6A81; |
| | | $opo-primary-active: #0B5E72; |
| | | $opo-primary-light-3: #569FB1; |
| | | $opo-primary-light-5: #87BBC7; |
| | | $opo-primary-light-7: #B7D6DD; |
| | | $opo-primary-light-8: #CFE4E9; |
| | | $opo-primary-light-9: #E7F1F4; |
| | | $opo-primary-light-95: #F3F8F9; |
| | | $opo-primary-dark-2: #0B5E72; |
| | | |
| | | // ---------- è¯ä¹è² ---------- |
| | | $opo-success: #67C23A; |
| | | $opo-success-light: #F0F9EB; |
| | | $opo-warning: #E6A23C; |
| | | $opo-warning-light: #FDF6EC; |
| | | $opo-danger: #CD1D4E; |
| | | $opo-danger-light: #FBEBEF; |
| | | $opo-info: #909399; |
| | | $opo-info-light: #F4F4F5; |
| | | |
| | | // ---------- 䏿§è² ---------- |
| | | $opo-text-primary: #1F2937; |
| | | $opo-text-regular: #4B5563; |
| | | $opo-text-secondary: #6B7280; |
| | | $opo-text-placeholder: #9CA3AF; |
| | | $opo-border-base: #E5E7EB; |
| | | $opo-border-light: #F0F2F5; |
| | | $opo-border-lighter: #F5F7FA; |
| | | $opo-bg-page: #F5F7FA; |
| | | $opo-bg-card: #FFFFFF; |
| | | $opo-bg-hover: #F5F9FD; |
| | | $opo-bg-stripe: #FAFBFC; |
| | | $opo-bg-thead: #F5F7FA; |
| | | |
| | | // ---------- è¡¨æ ¼æ¡çº¿ï¼æ¯éç¨è¾¹æ¡æ´æ·±ï¼ä¾¿äºçæ¸
åå/åè¡ï¼ ---------- |
| | | $opo-table-border: #C8CFD8; |
| | | $opo-table-border-strong: #B7C0CC; |
| | | |
| | | // ---------- ä¾§è¾¹æ ï¼ä¸åçéåæï¼ ---------- |
| | | $opo-sidebar-bg: #0A4655; |
| | | $opo-sidebar-sub-bg: #083B47; |
| | | $opo-sidebar-hover: rgba(14, 118, 143, 0.28); |
| | | $opo-sidebar-text: rgba(255, 255, 255, 0.72); |
| | | $opo-sidebar-text-active: #FFFFFF; |
| | | |
| | | // ---------- åå·ï¼2026-10-22 æ´ä½ä¸è°ä¸å·ï¼æ£æ 14â16ï¼ ---------- |
| | | $opo-font-size-display: 34px; |
| | | $opo-font-size-h1: 26px; |
| | | $opo-font-size-h2: 20px; |
| | | $opo-font-size-lg: 18px; |
| | | $opo-font-size-base: 16px; |
| | | $opo-font-size-sm: 14px; |
| | | $opo-font-size-xs: 13px; |
| | | $opo-font-size-menu: 16px; // ä¾§è¾¹æ èåï¼2026-10-22 ç± 18px åè°ä¸å·ï¼ |
| | | |
| | | // ---------- è¡é« ---------- |
| | | $opo-line-height-base: 22px; |
| | | $opo-line-height-heading: 1.3; |
| | | |
| | | // ---------- åä½ ---------- |
| | | // 注æï¼ä¸è¦ç¨ -apple-system / BlinkMacSystemFont æå¤´ââWindows ä¸ Chrome ä¼è§£ææ Segoe UIï¼ |
| | | // å¯¼è´æ°å/è±æèµ° Segoe UIï¼æ¯ä¸æç»ãæ¾å°ï¼ï¼ä¸æåé微软é
é»ï¼åä¸è¡éåå·è§æä¸ä¸è´ã |
| | | // è¿éæ"平尿åç¨ã没æåéå°å¾®è½¯é
é»"ç顺åºï¼ä¿è¯ä¸è±æåæã |
| | | $opo-font-family-base: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软é
é»", |
| | | "Helvetica Neue", Arial, sans-serif; |
| | | $opo-font-family-number: "DIN Alternate", "SF Mono", "Roboto Mono", Consolas, "Courier New", monospace; |
| | | |
| | | // ---------- é´è·ï¼8 ç¹æ
æ ¼ï¼ ---------- |
| | | $opo-space-1: 4px; |
| | | $opo-space-2: 8px; |
| | | $opo-space-3: 12px; |
| | | $opo-space-4: 16px; |
| | | $opo-space-5: 24px; |
| | | $opo-space-6: 32px; |
| | | |
| | | // ---------- åè§ ---------- |
| | | $opo-radius-sm: 2px; |
| | | $opo-radius-base: 4px; |
| | | $opo-radius-lg: 8px; |
| | | $opo-radius-pill: 999px; |
| | | |
| | | // ---------- é´å½± ---------- |
| | | $opo-shadow-sm: 0 1px 2px rgba(16, 24, 40, 0.06); |
| | | $opo-shadow-md: 0 4px 12px rgba(16, 24, 40, 0.08); |
| | | $opo-shadow-lg: 0 12px 32px rgba(16, 24, 40, 0.12); |
| | | |
| | | // ---------- æ§ä»¶é«åº¦ ---------- |
| | | $opo-control-height-small: 32px; |
| | | $opo-control-height-base: 36px; |
| | |
| | | // 设计令çï¼é¢è²/åå·/é´è·/åè§/é´å½±/åä½çå¯ä¸æ¥æºï¼ |
| | | @import './tokens.scss'; |
| | | |
| | | // base color |
| | | $blue:#324157; |
| | | $light-blue:#3A71A8; |
| | |
| | | |
| | | // é»è®¤èå主é¢é£æ ¼ |
| | | //èååä½é¢è² |
| | | $base-menu-color:#fff; |
| | | $base-menu-color:$opo-sidebar-text; |
| | | //éå®ååè¡¨æ¶æå¨å表çåä½é¢è² |
| | | // f4f4f5 |
| | | $base-menu-color-active:#fff; |
| | | //æ´ä½èæ¯é¢è²#0187B1 |
| | | $base-menu-background:#394d74; |
| | | $base-menu-color-active:$opo-sidebar-text-active; |
| | | //æ´ä½èæ¯é¢è²ï¼ä¸åçéåæçæ·±éï¼ |
| | | $base-menu-background:$opo-sidebar-bg; |
| | | //æ é¢åä½é¢è² |
| | | $base-logo-title-color: #ffffff; |
| | | // |
| | | $base-menu-light-color:rgba(0,0,0,.70); |
| | | $base-menu-light-background:#ffffff; |
| | | $base-logo-light-title-color: #001529; |
| | | //åè¡¨èæ¯é¢è²1f2d3d |
| | | $base-sub-menu-background:#394d74; |
| | | // |
| | | $base-sub-menu-hover:#a76ac3; |
| | | //åè¡¨èæ¯é¢è² |
| | | $base-sub-menu-background:$opo-sidebar-sub-bg; |
| | | //åè忬åè²ï¼åæ¥æ¯æ å
³èçç´«è² #a76ac3ï¼ |
| | | $base-sub-menu-hover:$opo-sidebar-hover; |
| | | |
| | | // èªå®ä¹æè²èå飿 ¼ |
| | | /** |
| | |
| | | $base-sub-menu-hover:#001528; |
| | | */ |
| | | |
| | | $base-sidebar-width: 200px; |
| | | $base-sidebar-width: 220px; |
| | | |
| | | // the :export directive is the magic sauce for webpack |
| | | // https://www.bluematador.com/blog/how-to-share-variables-between-js-and-sass |
| | |
| | | <template> |
| | | <el-color-picker |
| | | v-model="theme" |
| | | :predefine="['#409EFF', '#1890ff', '#304156','#212121','#11a983', '#13c2c2', '#6959CD', '#f5222d', ]" |
| | | :predefine="['#0E768F', '#CD1D4E', '#409EFF', '#1B8E70', '#7B61FF', '#E6843C', '#304156', '#212121']" |
| | | class="theme-picker" |
| | | popper-class="theme-picker-dropdown" |
| | | /> |
| | |
| | | |
| | | methods: { |
| | | async setTheme(val) { |
| | | const oldVal = this.chalk ? this.theme : ORIGINAL_THEME |
| | | if (typeof val !== 'string') return |
| | | // å
éç¥å¤å±ï¼ä¸»é¢è²ç± CSS åéå±ï¼utils/theme.jsï¼ç«å³çæã |
| | | // 忥çå®ç°è¦ç CDN æå theme-chalk å®æåæ emitï¼å
ç½æä¸å° unpkg |
| | | // æ¶ Promise æ°¸ä¸ resolveï¼å¯¼è´"æ¹ä¸»é¢æ²¡æä»»ä½ååº"ã |
| | | this.$emit('change', val) |
| | | const oldVal = this.chalk ? this.theme : ORIGINAL_THEME |
| | | const themeCluster = this.getThemeCluster(val.replace('#', '')) |
| | | const originalCluster = this.getThemeCluster(oldVal.replace('#', '')) |
| | | |
| | |
| | | if (typeof innerText !== 'string') return |
| | | style.innerText = this.updateStyle(innerText, originalCluster, themeCluster) |
| | | }) |
| | | |
| | | this.$emit('change', val) |
| | | }, |
| | | |
| | | updateStyle(style, oldCluster, newCluster) { |
| | |
| | | getCSSString(url, variable) { |
| | | return new Promise(resolve => { |
| | | const xhr = new XMLHttpRequest() |
| | | const done = () => resolve() |
| | | xhr.onreadystatechange = () => { |
| | | if (xhr.readyState === 4 && xhr.status === 200) { |
| | | this[variable] = xhr.responseText.replace(/@font-face{[^}]+}/, '') |
| | | if (xhr.readyState === 4) { |
| | | if (xhr.status === 200) { |
| | | this[variable] = xhr.responseText.replace(/@font-face{[^}]+}/, '') |
| | | } |
| | | resolve() |
| | | } |
| | | } |
| | | // å
ç½/æ å¤ç½æ¶å¿«é失败ï¼é¿å
Promise æ¬æå¯¼è´æ¢è¤å¡ä½ |
| | | xhr.onerror = done |
| | | xhr.ontimeout = done |
| | | xhr.timeout = 4000 |
| | | xhr.open('GET', url) |
| | | xhr.send() |
| | | }) |
| | |
| | | <span>主é¢é¢è²</span> |
| | | <theme-picker style="float: right;height: 26px;margin: -3px 8px 0 0;" @change="themeChange" /> |
| | | </div> |
| | | |
| | | <div class="drawer-item"> |
| | | <span>é¢è®¾ç®è¤</span> |
| | | <div class="opo-preset-list"> |
| | | <span |
| | | v-for="p in presets" |
| | | :key="p.color" |
| | | class="opo-preset-item" |
| | | :class="{ 'is-active': isCurrent(p.color) }" |
| | | :style="{ backgroundColor: p.color }" |
| | | :title="p.name" |
| | | @click="themeChange(p.color)" |
| | | /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <el-divider/> |
| | |
| | | |
| | | <script> |
| | | import ThemePicker from '@/components/ThemePicker' |
| | | import { PRESETS, applyTheme, setStoredTheme } from '@/utils/theme' |
| | | |
| | | export default { |
| | | components: { ThemePicker }, |
| | | data() { |
| | | return { |
| | | theme: this.$store.state.settings.theme, |
| | | sideTheme: this.$store.state.settings.sideTheme |
| | | sideTheme: this.$store.state.settings.sideTheme, |
| | | presets: PRESETS |
| | | }; |
| | | }, |
| | | computed: { |
| | |
| | | }, |
| | | }, |
| | | methods: { |
| | | isCurrent(color) { |
| | | return !!this.theme && String(this.theme).toUpperCase() === String(color).toUpperCase(); |
| | | }, |
| | | themeChange(val) { |
| | | this.$store.dispatch('settings/changeSetting', { |
| | | key: 'theme', |
| | | value: val |
| | | }) |
| | | this.theme = val; |
| | | // ç«å³çæå¹¶è®°ä½ï¼ä¸ä¾èµ ThemePicker ä» CDN æå theme-chalk |
| | | applyTheme(val); |
| | | setStoredTheme(val); |
| | | }, |
| | | handleTheme(val) { |
| | | this.$store.dispatch('settings/changeSetting', { |
| | |
| | | .drawer-switch { |
| | | float: right |
| | | } |
| | | |
| | | // é¢è®¾ç®è¤è²å |
| | | .opo-preset-list { |
| | | display: flex; |
| | | align-items: center; |
| | | flex-wrap: wrap; |
| | | margin-top: 8px; |
| | | } |
| | | |
| | | .opo-preset-item { |
| | | display: inline-block; |
| | | width: 22px; |
| | | height: 22px; |
| | | margin-right: 10px; |
| | | border-radius: 4px; |
| | | cursor: pointer; |
| | | border: 2px solid transparent; |
| | | box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08); |
| | | |
| | | &.is-active { |
| | | border-color: #1F2937; |
| | | box-shadow: 0 0 0 2px rgba(31, 41, 55, 0.18); |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div :class="classObj" class="app-wrapper" :style="{'--current-color': theme}"> |
| | | <div :class="classObj" class="app-wrapper"> |
| | | <div v-if="device==='mobile'&&sidebar.opened" class="drawer-bg" @click="handleClickOutside"/> |
| | | <sidebar class="sidebar-container"/> |
| | | <div :class="{hasTagsView:needTagsView}" class="main-container"> |
| | |
| | | import ResizeMixin from './mixin/ResizeHandler' |
| | | import { mapState } from 'vuex' |
| | | import variables from '@/assets/styles/variables.scss' |
| | | import { applyTheme, setStoredTheme } from '@/utils/theme' |
| | | |
| | | export default { |
| | | name: 'Layout', |
| | |
| | | return variables; |
| | | } |
| | | }, |
| | | created() { |
| | | // è¿å
¥ Layout æ¶åºç¨å½å主é¢è²ï¼å¹¶è®°ä½éæ©ï¼ |
| | | this.applyCurrentTheme() |
| | | }, |
| | | watch: { |
| | | theme(val) { |
| | | this.applyCurrentTheme() |
| | | setStoredTheme(val) |
| | | } |
| | | }, |
| | | methods: { |
| | | applyCurrentTheme() { |
| | | applyTheme(this.theme) |
| | | }, |
| | | handleClickOutside() { |
| | | this.$store.dispatch('app/closeSideBar', { withoutAnimation: false }) |
| | | } |
| | |
| | | import Cookies from 'js-cookie' |
| | | |
| | | import Element from 'element-ui' |
| | | import '@/assets/styles/tokens.css' // 设计令çï¼CSS åéï¼ä¾è¿è¡æ¶æ¢è¤ï¼ |
| | | import './assets/styles/element-variables.scss' |
| | | |
| | | import '@/assets/styles/index.scss' // global css |
| | | import '@/assets/styles/ruoyi.scss' // ruoyi css |
| | | // è¿è¡æ¶ä¸»é¢å± + ç»ä»¶é»è®¤å¤è§ï¼å¿
é¡»æäº element-ui ä¸ ruoyi.scssï¼å¦åè¦çä¸çæ |
| | | import '@/assets/styles/theme-runtime.scss' |
| | | import '@/assets/styles/element-override.scss' |
| | | import App from './App' |
| | | import store from './store' |
| | | import router from './router' |
| | |
| | | import { getConfigKey } from "@/api/system/config"; |
| | | import { parseTime, resetForm, addDateRange, selectDictLabel, selectDictLabels, handleTree } from "@/utils/ruoyi"; |
| | | import dataV from '@jiaminghi/data-view';//dataV |
| | | // 主é¢è²è¿è¡æ¶ï¼CSS åéæ³¨å
¥ï¼ |
| | | import { applyTheme, getStoredTheme, DEFAULT_PRIMARY } from '@/utils/theme' |
| | | // å页ç»ä»¶ |
| | | import Pagination from "@/components/Pagination"; |
| | | // èªå®ä¹è¡¨æ ¼å·¥å
·ç»ä»¶ |
| | |
| | | */ |
| | | |
| | | Vue.use(Element, { |
| | | size: Cookies.get('size') || 'medium' // set element-ui default size |
| | | size: Cookies.get('size') || 'small' // set element-ui default sizeï¼å mediumï¼æ¹ä¸º small æåä¿¡æ¯å¯åº¦ï¼ |
| | | }) |
| | | |
| | | // å¯å¨å³åºç¨å·²ä¿åç主é¢è²ï¼ç»å½é¡µçä¸ä½¿ç¨ Layout ç页é¢ä¹è½çæï¼ |
| | | applyTheme(getStoredTheme() || DEFAULT_PRIMARY) |
| | | |
| | | Vue.config.productionTip = false |
| | | |
| | | new Vue({ |
| | |
| | | sideTheme: 'theme-dark', |
| | | |
| | | /** |
| | | * æ¯å¦ç³»ç»å¸å±é
ç½® |
| | | * æ¯å¦ç³»ç»å¸å±é
ç½®ï¼å³ä¸è§é½¿è½®é¢æ¿ï¼ |
| | | * å为 falseï¼å¯¼è´"主é¢é¢è² / é¢è®¾ç®è¤"å
¥å£å¯¹ç¨æ·ä¸å¯è§ â æ¹ä¸º true |
| | | */ |
| | | showSettings: false, |
| | | showSettings: true, |
| | | |
| | | /** |
| | | * æ¯å¦æ¾ç¤ºé¡¶é¨å¯¼èª |
| | |
| | | * The default is only used in the production env |
| | | * If you want to also use it in dev, you can pass ['production', 'development'] |
| | | */ |
| | | errorLog: 'production', |
| | | // vscodeé»è®¤å¯ç¨äºæ ¹æ®æä»¶ç±»åèªå¨è®¾ç½®tabsizeçé项 |
| | | |
| | | "editor.detectIndentation": false, |
| | | |
| | | // éæ°è®¾å®tabsize |
| | | |
| | | "editor.tabSize": 2, |
| | | |
| | | // #æ¯æ¬¡ä¿åçæ¶åèªå¨æ ¼å¼å |
| | | |
| | | "editor.formatOnSave": true, |
| | | |
| | | // #æ¯æ¬¡ä¿åçæ¶åå°ä»£ç æeslintæ ¼å¼è¿è¡ä¿®å¤ |
| | | |
| | | "eslint.autoFixOnSave": true, |
| | | |
| | | "tslint.autoFixOnSave": true, |
| | | |
| | | // æ·»å vue æ¯æ |
| | | |
| | | "eslint.validate": [ |
| | | |
| | | "javascript", |
| | | |
| | | "javascriptreact", |
| | | |
| | | { |
| | | |
| | | "language": "vue", |
| | | |
| | | "autoFix": true |
| | | |
| | | } |
| | | |
| | | ], |
| | | |
| | | // #廿代ç ç»å°¾çåå· |
| | | |
| | | "prettier.semi": true, |
| | | |
| | | // #使ç¨å¸¦å¼å·æ¿ä»£åå¼å· |
| | | |
| | | "prettier.singleQuote": true, |
| | | |
| | | // #è®©å½æ°(å)ååé¢çæ¬å·ä¹é´å ä¸ªç©ºæ ¼ |
| | | |
| | | "javascript.format.insertSpaceBeforeFunctionParenthesis": true, |
| | | |
| | | // #è¿ä¸ªæç¨æ·èªèº«ä¹ æ¯éæ© |
| | | |
| | | "vetur.format.defaultFormatter.html": "js-beautify-html", |
| | | |
| | | // #让vueä¸çjsæç¼è¾å¨èªå¸¦çtsæ ¼å¼è¿è¡æ ¼å¼å |
| | | |
| | | "vetur.format.defaultFormatter.js": "vscode-typescript", |
| | | |
| | | "vetur.format.defaultFormatterOptions": { |
| | | |
| | | "js-beautify-html": { |
| | | |
| | | "wrap_attributes": "force-aligned" |
| | | |
| | | // #vueç»ä»¶ä¸htmlä»£ç æ ¼å¼åæ ·å¼ |
| | | |
| | | } |
| | | |
| | | }, |
| | | |
| | | // æ ¼å¼åstylus, éå®è£
Manta's Stylus Supremacyæä»¶ |
| | | |
| | | "stylusSupremacy.insertColons": false, // æ¯å¦æå
¥åå· |
| | | |
| | | "stylusSupremacy.insertSemicolons": false, // æ¯å¦æå
¥å好 |
| | | |
| | | "stylusSupremacy.insertBraces": false, // æ¯å¦æå
¥å¤§æ¬å· |
| | | |
| | | "stylusSupremacy.insertNewLineAroundImports": false, // importä¹åæ¯å¦æ¢è¡ |
| | | |
| | | "stylusSupremacy.insertNewLineAroundBlocks": false, |
| | | |
| | | "javascript.format.insertSpaceAfterConstructor": true // ä¸¤ä¸ªéæ©å¨ä¸æ¯å¦æ¢è¡ |
| | | errorLog: 'production' |
| | | } |
| | | |
| | |
| | | import defaultSettings from '@/settings' |
| | | import { DEFAULT_PRIMARY, getStoredTheme } from '@/utils/theme' |
| | | |
| | | const { sideTheme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo, dynamicTitle } = defaultSettings |
| | | |
| | | const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || '' |
| | | const state = { |
| | | title: '', |
| | | theme: storageSetting.theme || '#409EFF', |
| | | theme: storageSetting.theme || getStoredTheme() || DEFAULT_PRIMARY, |
| | | sideTheme: storageSetting.sideTheme || sideTheme, |
| | | showSettings: showSettings, |
| | | topNav: storageSetting.topNav === undefined ? topNav : storageSetting.topNav, |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | /** |
| | | * 主é¢è²è¿è¡æ¶è®¡ç®ä¸åºç¨ |
| | | * --------------------------------------------------------------- |
| | | * èæ¯ï¼Element UI 2.x ç主é¢è²æ¯ SCSS ç¼è¯æå¸¸éï¼è¿è¡æ¶æ æ³æ¹å¨ï¼ |
| | | * åæ ThemePicker ä¾èµ unpkg CDN æå theme-chalk ååç¬¦ä¸²æ¿æ¢ï¼ |
| | | * å
ç½ç¯å¢æä¸å° CSSï¼å¯¼è´"æ¹ä¸»é¢æ²¡ååº"ã |
| | | * åæ³ï¼ç±ä»»æä¸»è²æ¨åºä¸å¥è²é¶ï¼hover / active / light-3~95ï¼ï¼ |
| | | * åå
¥ :root ç CSS åéï¼theme-runtime.scss ç¨ var() æ¶è´¹è¿äºåéï¼ |
| | | * ä»èå®ç°"䏿¬¡ç¼è¯ãè¿è¡æ¶æ¢è¤ã页é¢ä¸å·æ°"ã |
| | | */ |
| | | |
| | | /** é»è®¤ä¸»è²ï¼OPO_Logo.png åç¯é */ |
| | | export const DEFAULT_PRIMARY = '#0E768F' |
| | | |
| | | /** localStorage é®ï¼ä¸å¸å±è®¾ç½®åå¼ï¼é¿å
äºç¸è¦çï¼ */ |
| | | const STORAGE_KEY = 'opo-theme' |
| | | |
| | | /** é¢è®¾ç®è¤ */ |
| | | export const PRESETS = [ |
| | | { name: 'åçé', color: '#0E768F' }, |
| | | { name: 'ç«çº¢', color: '#CD1D4E' }, |
| | | { name: 'Element è', color: '#409EFF' }, |
| | | { name: 'å¶è½ç»¿', color: '#1B8E70' }, |
| | | { name: 'ç´«', color: '#7B61FF' }, |
| | | { name: 'æ©', color: '#E6843C' } |
| | | ] |
| | | |
| | | const WHITE = [255, 255, 255] |
| | | const BLACK = [0, 0, 0] |
| | | |
| | | function clamp(v) { |
| | | return Math.max(0, Math.min(255, Math.round(v))) |
| | | } |
| | | |
| | | /** #abc / #aabbcc â [r,g,b]ï¼éæ³è¿å null */ |
| | | export function hexToRgb(hex) { |
| | | if (typeof hex !== 'string') return null |
| | | let h = hex.trim().replace(/^#/, '') |
| | | if (h.length === 3) { |
| | | h = h[0] + h[0] + h[1] + h[1] + h[2] + h[2] |
| | | } |
| | | if (!/^[0-9a-fA-F]{6}$/.test(h)) return null |
| | | return [parseInt(h.slice(0, 2), 16), parseInt(h.slice(2, 4), 16), parseInt(h.slice(4, 6), 16)] |
| | | } |
| | | |
| | | /** [r,g,b] â #RRGGBB */ |
| | | export function rgbToHex(rgb) { |
| | | return ( |
| | | '#' + |
| | | rgb |
| | | .map(function (v) { |
| | | const s = clamp(v).toString(16) |
| | | return s.length === 1 ? '0' + s : s |
| | | }) |
| | | .join('') |
| | | .toUpperCase() |
| | | ) |
| | | } |
| | | |
| | | /** |
| | | * æ··è²ï¼weight ä¸ºç®æ è²å æ¯ï¼0~1ï¼ |
| | | * mix([14,118,143], WHITE, 0.3) â 30% ç½ + 70% ä¸»è² |
| | | */ |
| | | export function mix(rgb, target, weight) { |
| | | const w = Math.max(0, Math.min(1, weight)) |
| | | return [ |
| | | clamp(rgb[0] * (1 - w) + target[0] * w), |
| | | clamp(rgb[1] * (1 - w) + target[1] * w), |
| | | clamp(rgb[2] * (1 - w) + target[2] * w) |
| | | ] |
| | | } |
| | | |
| | | function channelLum(v) { |
| | | const c = v / 255 |
| | | return c <= 0.03928 ? c / 12.92 : Math.pow((c + 0.055) / 1.055, 2.4) |
| | | } |
| | | |
| | | /** ç¸å¯¹äº®åº¦ï¼WCAGï¼ */ |
| | | export function luminance(rgb) { |
| | | return 0.2126 * channelLum(rgb[0]) + 0.7152 * channelLum(rgb[1]) + 0.0722 * channelLum(rgb[2]) |
| | | } |
| | | |
| | | /** ä¸ç½è²ç对æ¯åº¦ï¼ç¨äºå¤æç½åæ¯å¦å¯è¯» */ |
| | | export function contrastWithWhite(rgb) { |
| | | return 1.05 / (luminance(rgb) + 0.05) |
| | | } |
| | | |
| | | /** |
| | | * ç±ä¸»è²æ¨å
¨å¥è²é¶ |
| | | * æ·±è²ä¸»è²ï¼äº®åº¦ä½ï¼hover ç¨"å æ·±"ï¼æµ
è²ä¸»è² hover ç¨"åæµ
"ï¼ |
| | | * ä¿è¯ hover æçç½å对æ¯åº¦ä¸ä¼æä¸å»ã |
| | | */ |
| | | export function buildScale(primary) { |
| | | const base = hexToRgb(primary) || hexToRgb(DEFAULT_PRIMARY) |
| | | const isDark = luminance(base) < 0.4 |
| | | |
| | | const hover = isDark ? mix(base, BLACK, 0.1) : mix(base, WHITE, 0.2) |
| | | const active = isDark ? mix(base, BLACK, 0.2) : mix(base, WHITE, 0.32) |
| | | |
| | | return { |
| | | primary: rgbToHex(base), |
| | | hover: rgbToHex(hover), |
| | | active: rgbToHex(active), |
| | | light3: rgbToHex(mix(base, WHITE, 0.3)), |
| | | light5: rgbToHex(mix(base, WHITE, 0.5)), |
| | | light7: rgbToHex(mix(base, WHITE, 0.7)), |
| | | light8: rgbToHex(mix(base, WHITE, 0.8)), |
| | | light9: rgbToHex(mix(base, WHITE, 0.9)), |
| | | light95: rgbToHex(mix(base, WHITE, 0.95)), |
| | | dark2: rgbToHex(mix(base, BLACK, 0.2)), |
| | | isDark: isDark, |
| | | contrastWithWhite: Number(contrastWithWhite(base).toFixed(2)) |
| | | } |
| | | } |
| | | |
| | | /** æè²é¶åå
¥ :root ç CSS åéï¼theme-runtime.scss æ¶è´¹ï¼ */ |
| | | export function applyTheme(primary) { |
| | | const scale = buildScale(primary || DEFAULT_PRIMARY) |
| | | if (typeof document === 'undefined') return scale |
| | | |
| | | const root = document.documentElement |
| | | const map = { |
| | | '--opo-primary': scale.primary, |
| | | '--opo-primary-hover': scale.hover, |
| | | '--opo-primary-active': scale.active, |
| | | '--opo-primary-light-3': scale.light3, |
| | | '--opo-primary-light-5': scale.light5, |
| | | '--opo-primary-light-7': scale.light7, |
| | | '--opo-primary-light-8': scale.light8, |
| | | '--opo-primary-light-9': scale.light9, |
| | | '--opo-primary-light-95': scale.light95, |
| | | '--opo-primary-dark-2': scale.dark2 |
| | | } |
| | | Object.keys(map).forEach(function (k) { |
| | | root.style.setProperty(k, map[k]) |
| | | }) |
| | | // ä¾ä¸ªå«éè¦ç¥é"å½åæ¯å¦æ·±è²ä¸»è²"çåºæ¯ä½¿ç¨ |
| | | root.setAttribute('data-opo-dark-primary', scale.isDark ? '1' : '0') |
| | | return scale |
| | | } |
| | | |
| | | /** 读å䏿¬¡éæ©çä¸»è² */ |
| | | export function getStoredTheme() { |
| | | try { |
| | | return localStorage.getItem(STORAGE_KEY) |
| | | } catch (e) { |
| | | return null |
| | | } |
| | | } |
| | | |
| | | /** è®°ä½éæ© */ |
| | | export function setStoredTheme(color) { |
| | | try { |
| | | localStorage.setItem(STORAGE_KEY, color) |
| | | } catch (e) { |
| | | /* 忽ç¥éç§æ¨¡å¼çå¼å¸¸ */ |
| | | } |
| | | } |
| | | |
| | | export default { |
| | | DEFAULT_PRIMARY: DEFAULT_PRIMARY, |
| | | PRESETS: PRESETS, |
| | | applyTheme: applyTheme, |
| | | buildScale: buildScale, |
| | | getStoredTheme: getStoredTheme, |
| | | setStoredTheme: setStoredTheme, |
| | | hexToRgb: hexToRgb, |
| | | rgbToHex: rgbToHex, |
| | | mix: mix, |
| | | luminance: luminance, |
| | | contrastWithWhite: contrastWithWhite |
| | | } |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="ä»»å¡åç§°" prop="jobName"> |
| | | <el-input |
| | | v-model="queryParams.jobName" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="ä»»å¡åç§°" prop="jobName"> |
| | | <el-input |
| | | v-model="queryParams.jobName" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="ç»å½å°å" prop="ipaddr"> |
| | | <el-input |
| | | v-model="queryParams.ipaddr" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" label-width="68px"> |
| | | <el-form-item label="ç»å½å°å" prop="ipaddr"> |
| | | <el-input |
| | | v-model="queryParams.ipaddr" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="ç³»ç»æ¨¡å" prop="title"> |
| | | <el-input |
| | | v-model="queryParams.title" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | this.queryParams.reporterno = this.reportervalue; |
| | | } |
| | | |
| | | if (this.starttime != "") { |
| | | this.queryParams.starttime = this.starttime; |
| | | } else { |
| | | this.queryParams.starttime = ""; |
| | | } |
| | | if (this.endtime != "") { |
| | | this.queryParams.endtime = this.endtime; |
| | | } else { |
| | | this.queryParams.endtime = ""; |
| | | } |
| | | // æªéæ¶é´èå´æ¶ä¼ nullï¼ç©ºä¸²ä¼è®©å端æ¼åº `donatetime >= ''`ï¼ |
| | | // MySQL ä¸¥æ ¼æ¨¡å¼ä¼æ¥ Incorrect DATETIME value: ''ï¼è§ CHANGELOG 2026-10-22ï¼ |
| | | this.queryParams.starttime = this.starttime || null; |
| | | this.queryParams.endtime = this.endtime || null; |
| | | console.log(this.queryParams); |
| | | |
| | | listDonationProcess(this.queryParams).then(response => { |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="æ¶ç人å§å 家屿ä¸å®¶" prop="beneficiaryname"> |
| | | <el-input |
| | | v-model="queryParams.beneficiaryname" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="éä»¶ç¼å·" prop="annexno"> |
| | |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | class="opo-query-form" |
| | | :inline="true" |
| | | v-show="showSearch" |
| | | label-width="70px" |
| | | > |
| | | <el-row :gutter="8"> |
| | | <el-col :span="5"> |
| | | <el-form-item label="å§å" prop="name"> |
| | | <el-form-item label="æç®è
" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.name" |
| | | placeholder="请è¾å
¥å§å" |
| | | placeholder="请è¾å
¥æç®è
å§å" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="æ¡ä¾æ¶é´"> |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | v-model="selecttime" |
| | | type="monthrange" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æä»½" |
| | | end-placeholder="ç»ææä»½" |
| | | value-format="yyyy-MM-dd" |
| | | @change="getTimeList" |
| | | <el-col :span="6"> |
| | | <el-form-item label="æ¥å人"> |
| | | <el-select |
| | | v-model="queryParams.reporterno" |
| | | placeholder="è¯·éæ©æ¥å人" |
| | | > |
| | | </el-date-picker> |
| | | <el-option |
| | | v-for="item in reportlist" |
| | | :key="item.index" |
| | | :label="item.reportername" |
| | | :value="item.reporterno" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="8"> |
| | | <el-col :span="5"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æç®è¿åº¦" prop="workflow"> |
| | | <el-select |
| | | v-model="queryParams.workflow" |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | <el-form-item label="æ¥å人"> |
| | | <el-select |
| | | v-model="queryParams.reporterno" |
| | | placeholder="è¯·éæ©æ¥å人" |
| | | <el-col :span="9"> |
| | | <el-form-item label="æ¡ä¾æ¶é´"> |
| | | <el-date-picker |
| | | style="width: 100%" |
| | | v-model="selecttime" |
| | | type="monthrange" |
| | | range-separator="è³" |
| | | start-placeholder="å¼å§æä»½" |
| | | end-placeholder="ç»ææä»½" |
| | | value-format="yyyy-MM-dd" |
| | | @change="getTimeList" |
| | | > |
| | | <el-option |
| | | v-for="item in reportlist" |
| | | :key="item.index" |
| | | :label="item.reportername" |
| | | :value="item.reporterno" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="5"> |
| | | |
| | | <el-col :span="6"> |
| | | <el-form-item label="æ¯å¦ç»æ¢"> |
| | | <el-select |
| | | v-model="queryParams.terminationCase" |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="ç±è´¯"> |
| | | <div> |
| | | <li_area_select |
| | | ref="areaSelect" |
| | | v-model="searchAddress" |
| | | ></li_area_select> |
| | | </div> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="4"> |
| | | <!-- æç´¢/éç½®ç´§è·æ¥è¯¢æ¡ä»¶ï¼ä¸"æ¡ä¾è¯ä¼°"页ä¸è´ï¼ --> |
| | | <el-col :span="6"> |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | |
| | | label="æç®ç¼å·" |
| | | align="center" |
| | | prop="donorno" |
| | | width="200" |
| | | width="100" |
| | | /> |
| | | <el-table-column label="å§å" align="center" prop="name" width="100" /> |
| | | <el-table-column label="æ§å«" align="center" prop="sex" width="100"> |
| | |
| | | <el-table-column |
| | | label="å»çæºæ" |
| | | align="center" |
| | | prop="treatmenthospitalname" |
| | | prop="treatmenthospitalname" width="220" |
| | | /> |
| | | <el-table-column label="è¡å" align="center" prop="bloodtype" width="100"> |
| | | <el-table-column label="è¡å" align="center" prop="bloodtype" width="80"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.sys_BloodType" |
| | |
| | | prop="reportername" |
| | | width="100" |
| | | /> |
| | | <!-- |
| | | |
| | | <el-table-column |
| | | label="ç°æå¨å°å¸" |
| | | align="center" |
| | |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | --> |
| | | |
| | | <el-table-column |
| | | label="æç®è¿åº¦" |
| | | align="center" |
| | |
| | | label="æä½" |
| | | align="center" |
| | | class-name="small-padding fixed-width" |
| | | fixed="right" |
| | | fixed="right" width="200" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | |
| | | this.queryParams.reportno = this.reportervalue; |
| | | } |
| | | |
| | | if (this.starttime != "") { |
| | | this.queryParams.starttime = this.starttime; |
| | | } else { |
| | | this.queryParams.starttime = ""; |
| | | } |
| | | if (this.endtime != "") { |
| | | this.queryParams.endtime = this.endtime; |
| | | } else { |
| | | this.queryParams.endtime = ""; |
| | | } |
| | | this.queryParams.residenceprovince = this.$refs.areaSelect.getSheng(); |
| | | this.queryParams.residencecity = this.$refs.areaSelect.getShi(); |
| | | this.queryParams.residencetown = this.$refs.areaSelect.getQu(); |
| | | // æªéæ©æ¶é´èå´æ¶å¿
é¡»ä¼ nullï¼ä¼ 空串ä¼è®©å端æ¼åº `donatetime >= ''`ï¼ |
| | | // MySQL ä¸¥æ ¼æ¨¡å¼ä¼æ¥ Incorrect DATETIME value: ''ï¼å¯¼è´å表æ¥ä¸åºæ¥ã |
| | | // request.js åªä¼æ¼æ¥é null/undefined çåæ°ï¼æä»¥ null çäº"ä¸å¸¦è¯¥æ¡ä»¶"ã |
| | | this.queryParams.starttime = this.starttime || null; |
| | | this.queryParams.endtime = this.endtime || null; |
| | | // æ¥è¯¢æ¡ä»¶éç"ç±è´¯"已移é¤ï¼ä¸åä» areaSelect ç»ä»¶åå¼ï¼ |
| | | // 置空以æ¸
æå¯è½æ®ççæ§æ¡ä»¶ï¼åæ°ä¸º null æ¶ä¸ä¼è¢«æ¼è¿è¯·æ±ï¼ |
| | | this.queryParams.residenceprovince = null; |
| | | this.queryParams.residencecity = null; |
| | | this.queryParams.residencetown = null; |
| | | console.log(this.queryParams); |
| | | |
| | | listDonatebaseinfo(this.queryParams).then(response => { |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | /* æ¥è¯¢åºè¡è·ã页é¢å
è¾¹è·ãå·¥å
·æ é´è·å·²æå为å
¨å±è§åï¼.opo-query-form / .app-containerï¼ï¼æ¤å¤ä¸ååç¬è¦ç */ |
| | | ::v-deep .el-dialog__header { |
| | | padding-top: 40px !important; |
| | | margin: auto !important; |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | // this.queryParams.residenceprovince = this.$refs.areaSelect.getSheng(); |
| | | // this.queryParams.residencecity = this.$refs.areaSelect.getShi(); |
| | | // this.queryParams.residencetown = this.$refs.areaSelect.getQu(); |
| | | if (this.starttime != "") { |
| | | this.queryParams.starttime = this.starttime; |
| | | } else { |
| | | this.queryParams.starttime = ""; |
| | | } |
| | | if (this.endtime != "") { |
| | | this.queryParams.endtime = this.endtime; |
| | | } else { |
| | | this.queryParams.endtime = ""; |
| | | } |
| | | // æªéæ¶é´èå´æ¶ä¼ nullï¼ç©ºä¸²ä¼è®©å端æ¼åº `donatetime >= ''`ï¼ |
| | | // MySQL ä¸¥æ ¼æ¨¡å¼ä¼æ¥ Incorrect DATETIME value: ''ï¼è§ CHANGELOG 2026-10-22ï¼ |
| | | this.queryParams.starttime = this.starttime || null; |
| | | this.queryParams.endtime = this.endtime || null; |
| | | // this.queryParams.residenceprovince = this.$refs.areaSelect.getSheng(); |
| | | // this.queryParams.residencecity = this.$refs.areaSelect.getShi(); |
| | | // this.queryParams.residencetown = this.$refs.areaSelect.getQu(); |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="70px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="70px"> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="å¨å®åç§°" prop="organno"> |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | // this.queryParams.residenceprovince = this.$refs.areaSelect.getSheng(); |
| | | // this.queryParams.residencecity = this.$refs.areaSelect.getShi(); |
| | | // this.queryParams.residencetown = this.$refs.areaSelect.getQu(); |
| | | if (this.starttime != "") { |
| | | this.queryParams.starttime = this.starttime; |
| | | } else { |
| | | this.queryParams.starttime = ""; |
| | | } |
| | | if (this.endtime != "") { |
| | | this.queryParams.endtime = this.endtime; |
| | | } else { |
| | | this.queryParams.endtime = ""; |
| | | } |
| | | // æªéæ¶é´èå´æ¶ä¼ nullï¼ç©ºä¸²ä¼è®©å端æ¼åº `donatetime >= ''`ï¼ |
| | | // MySQL ä¸¥æ ¼æ¨¡å¼ä¼æ¥ Incorrect DATETIME value: ''ï¼è§ CHANGELOG 2026-10-22ï¼ |
| | | this.queryParams.starttime = this.starttime || null; |
| | | this.queryParams.endtime = this.endtime || null; |
| | | listDonatebaseinfo(this.queryParams).then((response) => { |
| | | console.log("getlist", response.rows); |
| | | this.donatebaseinfoList = response.rows; |
| | |
| | | <div class="left-course" :class="{ 'left-collapsed': isLeftCollapsed }"> |
| | | <div class="postfilx"> |
| | | <div class="title"> |
| | | å·¥ä½è¿ç¨ |
| | | æ¡ä¾è¿ç¨ |
| | | <el-button |
| | | class="collapse-btn" |
| | | @click="toggleLeftCollapse" |
| | |
| | | this.isLeftCollapsed = !this.isLeftCollapsed; |
| | | }, |
| | | /** ä¿å主表æé® */ |
| | | submitForm() { |
| | | submitForm(fromProcess) { |
| | | // ä¿åé²éï¼é"æµç¨æ¨è¿"触åçä¿åï¼2 ç§å
çéå¤ç¹å»ç´æ¥å¿½ç¥ï¼é²æ¢é夿å
¥ï¼ |
| | | if (!fromProcess && !this.canSave()) { |
| | | this.$modal.msgWarning("请å¿éå¤æäº¤"); |
| | | return; |
| | | } |
| | | this.$refs["form"].validate(valid => { |
| | | console.log("æäº¤çæ°æ®ä»¬ï¼", this.form); |
| | | if (valid) { |
| | |
| | | "YYYY-MM-DD HH:mm:ss" |
| | | ); |
| | | |
| | | this.form.diseasetype = this.form.diseasetype.join(","); |
| | | |
| | | this.form.infectious = this.form.infectious.join(","); |
| | | this.form.selfwill = this.form.selfwill.join(","); |
| | | this.form.othercases = this.form.othercases.join(","); |
| | | this.form.infosources = this.form.infosources.join(","); |
| | | this.form.kinship = this.form.kinship.join(","); |
| | | this.form.patientstate = this.form.patientstate.join(","); |
| | | // å¤éåæ®µè½¬å符串ï¼å¹çå¤çï¼å·²æ¯å符串æ¶ä¿æåæ ·ï¼ï¼ |
| | | // é¿å
"ä¿åæååæªéæ°å è½½åæ¬¡ä¿å"æ¶æ join is not a function |
| | | [ |
| | | "diseasetype", |
| | | "infectious", |
| | | "selfwill", |
| | | "othercases", |
| | | "infosources", |
| | | "kinship", |
| | | "patientstate" |
| | | ].forEach(key => { |
| | | if (Array.isArray(this.form[key])) { |
| | | this.form[key] = this.form[key].join(","); |
| | | } |
| | | }); |
| | | this.form.registerprovince = this.$refs.registerSelect.getSheng(); |
| | | this.form.registerprovincename = this.registerAddresss.sheng; |
| | | |
| | |
| | | }, |
| | | // ä¿åäºçº§è¡¨æé® |
| | | Savethedetails() { |
| | | // ä¿åé²éï¼2 ç§å
çéå¤ç¹å»ç´æ¥å¿½ç¥ï¼é²æ¢é夿å
¥ï¼ |
| | | if (!this.canSave()) { |
| | | this.$modal.msgWarning("请å¿éå¤æäº¤"); |
| | | return; |
| | | } |
| | | console.log(this.actives); |
| | | if (this.actives == 1) { |
| | | this.medicineform.infoid = this.infoid; |
| | |
| | | updateMedicalevaluation(this.medicineform).then(response => { |
| | | this.$modal.msgSuccess("å»å¦è¯ä¼°ä¿¡æ¯ä¿®æ¹æå"); |
| | | this.$modal.closeLoading(); |
| | | this.Processvalidation(); |
| | | }); |
| | | } else { |
| | | addMedicalevaluation(this.medicineform).then(response => { |
| | | // å填主é®ï¼å¦å䏿¬¡ä¿åä»èµ°"æ°å¢"ï¼ä¼äº§çéå¤è¡ |
| | | if (response && response.data && response.data.id) { |
| | | this.medicineform.id = response.data.id; |
| | | } |
| | | this.$modal.msgSuccess("å»å¦è¯ä¼°ä¿¡æ¯æ°å¢æå"); |
| | | this.$modal.closeLoading(); |
| | | this.Processvalidation(); |
| | | }); |
| | | } |
| | | this.Processvalidation(); |
| | | } |
| | | }); |
| | | } else if (this.actives == 2) { |
| | |
| | | updateRelativesconfirmation(this.affirmform).then(response => { |
| | | this.$modal.msgSuccess("æç®ç¡®è®¤ä¿¡æ¯ä¿®æ¹æå"); |
| | | this.$modal.closeLoading(); |
| | | this.Processvalidation(); |
| | | }); |
| | | } else { |
| | | this.affirmform.residenceprovincename = this.defultAddresss.sheng; |
| | | this.affirmform.residencecityname = this.defultAddresss.shi; |
| | | this.affirmform.residencetownname = this.defultAddresss.qu; |
| | | addRelativesconfirmation(this.affirmform).then(response => { |
| | | // å填主é®ï¼å¦å䏿¬¡ä¿åä»èµ°"æ°å¢"ï¼ä¼äº§çéå¤è¡ |
| | | if (response && response.data && response.data.id) { |
| | | this.affirmform.id = response.data.id; |
| | | } |
| | | this.$modal.msgSuccess("æç®ç¡®è®¤ä¿¡æ¯æ°å¢æå"); |
| | | this.$modal.closeLoading(); |
| | | this.Processvalidation(); |
| | | }); |
| | | } |
| | | this.Processvalidation(); |
| | | } |
| | | }); |
| | | } else if (this.actives == 3) { |
| | |
| | | updateEthicalreviewopinions(this.ethicform).then(res => { |
| | | this.$modal.msgSuccess("伦ç审æ¥ä¿¡æ¯ä¿®æ¹æå"); |
| | | this.$modal.closeLoading(); |
| | | this.Processvalidation(); |
| | | }); |
| | | } else { |
| | | //addDonateflowchart(this.ethicform).then(response => { |
| | | addEthicalreviewopinions(this.ethicform).then(res => { |
| | | // å填主é®ï¼å¦å䏿¬¡ä¿åä»èµ°"æ°å¢"ï¼ä¼äº§çéå¤è¡ |
| | | if (res && res.data && res.data.id) { |
| | | this.ethicform.id = res.data.id; |
| | | } |
| | | this.$modal.msgSuccess("伦ç审æ¥ä¿¡æ¯æ°å¢æå"); |
| | | this.$modal.closeLoading(); |
| | | this.Processvalidation(); |
| | | }); |
| | | } |
| | | this.Processvalidation(); |
| | | } |
| | | }); |
| | | } else if (this.actives == 4) { |
| | |
| | | } |
| | | }); |
| | | saveDonateorgan(this.allocateddata).then(res => { |
| | | // å填主é®ï¼å端已æ"å䏿¡ä¾åä¸å¨å®"å upsertï¼åå¡«åå端ä¸ä¼å误å¤ä¸ºæ°å¢ |
| | | if (res && res.data && res.data.length === this.allocateddata.length) { |
| | | res.data.forEach((row, i) => { |
| | | this.allocateddata[i].id = row.id; |
| | | }); |
| | | } |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("å¨å®æç®åé
ä¿¡æ¯ä¿åæåï¼"); |
| | | this.$modal.closeLoading(); |
| | |
| | | }); |
| | | //ä¿åå¨å®è·åè¡¨æ°æ® |
| | | saveDonationwitnessorgan(this.procureddata).then(res => { |
| | | if (res == 200) { |
| | | if (res && res.data && res.data.length === this.procureddata.length) { |
| | | res.data.forEach((row, i) => { |
| | | this.procureddata[i].id = row.id; |
| | | }); |
| | | } |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("æç®å¨å®è·åä¿¡æ¯ä¿åæåï¼"); |
| | | } |
| | | this.$modal.closeLoading(); |
| | |
| | | } else { |
| | | addDonationwitness(this.witnessform).then(response => { |
| | | if (response.code === 200) { |
| | | // å填主é®ï¼å¦å䏿¬¡ä¿åä»èµ°"æ°å¢" |
| | | if (response.data && response.data.id) { |
| | | this.witnessform.id = response.data.id; |
| | | } |
| | | this.$modal.msgSuccess("è·åè§è¯ä¿¡æ¯æ°å¢æå"); |
| | | this.form.donationcategory = this.witnessform.donationcategory; |
| | | let data = JSON.parse(JSON.stringify(this.form)); |
| | |
| | | }); |
| | | //ä¿åå¨å®è·åè¡¨æ°æ® |
| | | saveDonationwitnessorgan(this.procureddata).then(res => { |
| | | if (res == 200) { |
| | | if (res && res.data && res.data.length === this.procureddata.length) { |
| | | res.data.forEach((row, i) => { |
| | | this.procureddata[i].id = row.id; |
| | | }); |
| | | } |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("æç®å¨å®è·åä¿¡æ¯ä¿åæåï¼"); |
| | | } |
| | | this.$modal.closeLoading(); |
| | |
| | | updateDonatecompletioninfo(this.accomplishform).then(response => { |
| | | this.$modal.msgSuccess("宿ç»è®°ä¿¡æ¯ä¿®æ¹æå"); |
| | | saveDonatecomporgan(this.transplantdata).then(res => { |
| | | if (res == 200) { |
| | | if (res && res.data && res.data.length === this.transplantdata.length) { |
| | | res.data.forEach((row, i) => { |
| | | this.transplantdata[i].id = row.id; |
| | | }); |
| | | } |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("æç®å¨å®ç»è®°ä¿¡æ¯ä¿åæåï¼"); |
| | | } else { |
| | | this.$modal.msgSuccess(res.msg); |
| | |
| | | }); |
| | | } else { |
| | | addDonatecompletioninfo(this.accomplishform).then(response => { |
| | | // å填主é®ï¼å¦å䏿¬¡ä¿åä»èµ°"æ°å¢" |
| | | if (response && response.data && response.data.id) { |
| | | this.accomplishform.id = response.data.id; |
| | | } |
| | | this.$modal.msgSuccess("宿ç»è®°æå"); |
| | | saveDonatecomporgan(this.transplantdata).then(res => { |
| | | if (res && res.data && res.data.length === this.transplantdata.length) { |
| | | res.data.forEach((row, i) => { |
| | | this.transplantdata[i].id = row.id; |
| | | }); |
| | | } |
| | | if (res.code == 200) { |
| | | this.$modal.msgSuccess("æç®å¨å®ç»è®°ä¿¡æ¯ä¿åæåï¼"); |
| | | } else { |
| | |
| | | console.log("å·²å°è¾¾æå¤§å¼"); |
| | | } |
| | | }, |
| | | // ä¿åé²éï¼2 ç§å
éå¤ç¹å»è§ä¸ºéå¤æäº¤ |
| | | canSave() { |
| | | const now = Date.now(); |
| | | if (this.saveLockAt && now - this.saveLockAt < 2000) { |
| | | return false; |
| | | } |
| | | this.saveLockAt = now; |
| | | return true; |
| | | }, |
| | | // æ´æ¹è¿ç¨æéª |
| | | Processvalidation() { |
| | | if (this.form.workflow + 1 == this.actives) { |
| | |
| | | this.form.workflow++; |
| | | } else { |
| | | } |
| | | this.submitForm(); |
| | | // this.GetAttacheddata(); |
| | | // ç±"ä¿åäºçº§è¡¨"触åçä¿åï¼ä¸åä¸é²éï¼å¦åä¼è¢« canSave æ¦æï¼ |
| | | this.submitForm(true); |
| | | } else if (this.form.workflow > this.actives) { |
| | | this.submitForm(); |
| | | // Modifydonationattachment(this.donatelist).then(res => {}); |
| | | // this.GetAttacheddata(); |
| | | this.submitForm(true); |
| | | } else { |
| | | this.submitForm(); |
| | | // this.$modal.msgWarning("请å
宿å鍿¥éª¤"); |
| | | this.submitForm(true); |
| | | return; |
| | | } |
| | | }, |
| | |
| | | <style lang="scss" scoped> |
| | | .particularsdiv { |
| | | display: flex; |
| | | background-color: #f5f7fa; |
| | | background-color: var(--opo-bg-page, #f5f7fa); |
| | | height: 100vh; |
| | | overflow: hidden; |
| | | transition: all 0.3s ease; |
| | | |
| | | // 左侧工ä½è¿ç¨æ |
| | | // 左侧工ä½è¿ç¨æ ï¼2026-10-22ï¼å»æåºè²ï¼åªç䏿¡åéçº¿ï¼æ 颿忹åçéï¼ |
| | | .left-course { |
| | | background: #fff; |
| | | background: transparent; |
| | | width: 220px; |
| | | min-width: 220px; |
| | | text-align: center; |
| | | margin: 0; |
| | | padding: 0; |
| | | height: 100%; |
| | | box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1); |
| | | border-right: 1px solid var(--opo-border-base, #e5e7eb); |
| | | transition: all 0.3s ease; |
| | | position: relative; |
| | | z-index: 100; |
| | |
| | | flex-direction: column; |
| | | |
| | | .title { |
| | | background: #22a2c3; |
| | | background: transparent; |
| | | margin-bottom: 0; |
| | | padding: 15px 10px; |
| | | color: #fff; |
| | | color: var(--opo-primary, #0e768f); |
| | | font-size: 16px; |
| | | font-weight: 600; |
| | | display: flex; |
| | |
| | | transition: all 0.3s ease; |
| | | min-height: 54px; // ç¡®ä¿æ é¢åºåæåºå®é«åº¦ |
| | | box-sizing: border-box; |
| | | border-bottom: 1px solid var(--opo-border-base, #e5e7eb); |
| | | |
| | | .collapse-btn { |
| | | background: rgba(255, 255, 255, 0.2); |
| | | border: none; |
| | | color: #fff; |
| | | // æ é¢åºè²å»æåï¼æé®æ¹ä¸ºæµ
éæè¾¹é£æ ¼ï¼é¿å
ç½åºç½åçä¸è§ |
| | | background: var(--opo-primary-light-9, #e7f1f4); |
| | | border: 1px solid var(--opo-primary-light-7, #b7d6dd); |
| | | color: var(--opo-primary, #0e768f); |
| | | width: 32px; // ç¨å¾®å¢å¤§ç¡®ä¿å¯ç¹å»åºå |
| | | height: 32px; |
| | | padding: 0; |
| | |
| | | flex-shrink: 0; // 鲿¢æé®è¢«å缩 |
| | | |
| | | &:hover { |
| | | background: rgba(255, 255, 255, 0.3); |
| | | background: var(--opo-primary-light-7, #b7d6dd); |
| | | border-color: var(--opo-primary, #0e768f); |
| | | transform: scale(1.1); |
| | | } |
| | | |
| | |
| | | } |
| | | } |
| | | |
| | | // æ¥éª¤æ ·å¼ä¼å |
| | | // æ¥éª¤æ ·å¼ä¼åï¼é
è²ç»ä¸å°ç³»ç»åçè²ï¼teal #0E768Fï¼ |
| | | ::v-deep .el-steps { |
| | | &.el-steps--vertical { |
| | | height: 100%; |
| | |
| | | |
| | | .el-step__head { |
| | | &.is-finish { |
| | | color: #22a2c3; |
| | | border-color: #22a2c3; |
| | | color: var(--opo-primary, #0e768f); |
| | | border-color: var(--opo-primary, #0e768f); |
| | | } |
| | | } |
| | | |
| | | .el-step__title { |
| | | font-size: 14px; |
| | | font-size: var(--opo-font-size-sm); |
| | | font-weight: 600; |
| | | |
| | | &.is-finish { |
| | | color: #22a2c3; |
| | | color: var(--opo-primary, #0e768f); |
| | | } |
| | | } |
| | | |
| | | .el-step__description { |
| | | font-size: 12px; |
| | | color: #666; |
| | | font-size: var(--opo-font-size-xs); |
| | | // æè¿°æåç»ä¸ç¨ä¸æ§ç°ï¼é¿å
æ´å颿¿è¢«åçè²æ·¹æ²¡ |
| | | color: var(--opo-text-secondary, #6b7280); |
| | | line-height: 1.5; |
| | | |
| | | &.is-finish { |
| | | color: #22a2c3; |
| | | color: var(--opo-text-regular, #4b5563); |
| | | } |
| | | |
| | | p { |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="120px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="120px"> |
| | | <el-form-item label="æç®å§å" prop="name"> |
| | | <el-input v-model="queryParams.name" placeholder="请è¾å
¥å§å" clearable size="small" |
| | | @keyup.enter.native="handleQuery" /> |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="å¨å®ç¼ç " prop="organcode"> |
| | | <el-input |
| | | v-model="queryParams.organcode" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="80px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="80px"> |
| | | |
| | | <el-form-item label="è´¦å·ç±»å«" prop="usertype"> |
| | | <el-select v-model="queryParams.usertype" placeholder="è¯·éæ©è´¦å·ç±»å«" clearable size="small"> |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="项ç®ç±»å" prop="itemtype"> |
| | | <el-select v-model="queryParams.itemtype" placeholder="è¯·éæ©é¡¹ç®ç±»å" clearable size="small"> |
| | | <el-option v-for="dict in dict.type.sys_ConsolationType" :key="dict.value" :label="dict.label" |
| | |
| | | <el-form-item label="æç®æ¡ä¾" prop="name"> |
| | | <el-input :disabled="true" v-model="form.donorname" placeholder="请è¾å
¥æç®è
å§å" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="4"> |
| | | <div style="margin-left: 10px;"> |
| | | <dict-tag |
| | | :options="dict.type.sys_DonationStatus" |
| | | :value="form.invoicecount" |
| | | /> |
| | | </div> |
| | | </el-col> |
| | | </el-col> |
| | | <el-col :span="10"> |
| | | <el-form-item label="ç³è¯·è¯´æ" prop="remark"> |
| | | <el-input v-model="form.remark" placeholder="ç³è¯·è¯´æ" /> |
| | |
| | | return callback(); |
| | | } |
| | | const regex = /^[1-9]\d{5}(19|20)\d{2}(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}([0-9]|X)$/; |
| | | if (regex.test(value)) { |
| | | } else { |
| | | callback(new Error("身份è¯å·ç æ ¼å¼é误")); |
| | | // 2026-10-19ï¼æ ¼å¼ä¸åæ³ç«å³æ©éãåæ¥åæ if/else ä½ else éæ²¡æ returnï¼ |
| | | // ä¼ç»§ç»å¾ä¸èµ°å¼æ¥æ¥éï¼å¯¼è´ callback 被è°ç¨ä¸¤æ¬¡ã"身份è¯å·ç æ ¼å¼é误"被åç»ç»æè¦çã |
| | | if (!regex.test(value)) { |
| | | return callback(new Error("身份è¯å·ç æ ¼å¼é误")); |
| | | } |
| | | |
| | | // 2. è°ç¨å端æ¥å£è¿è¡é夿§æ ¡éª |
| | |
| | | }, |
| | | |
| | | dialogrules: { |
| | | // 2026-10-19ï¼è´¦æ·åç§°ï¼è´¦æ·æ¥æº=ä»è´¦æ·åº æ¶ç䏿ï¼ä¹æ¯å¿
è¾é¡¹ |
| | | accountname: [ |
| | | { required: true, message: "è¯·éæ©è´¦æ·åç§°", trigger: "change" } |
| | | ], |
| | | usertype: [ |
| | | { required: true, message: "请è¾å
¥è´¦æ·ç±»å", trigger: "blur" } |
| | | ], |
| | |
| | | unitTaxNo: [{ required: true, message: "请è¾å
¥ç¨å·", trigger: "blur" }], |
| | | idcardno: [ |
| | | { |
| | | // 2026-10-19ï¼å required æ è®°åªä¸ºè®© el-form-item æ åºå¿
è¾æå·ï¼Element ç isRequired åªè®¤ rule.requiredï¼ã |
| | | // æ¬è§å带 validatorï¼async-validator ç getValidationMethod ä¼ç´æ¥è¿å该 validatorãè·³è¿å
建 required æ£æ¥ï¼ |
| | | // æä»¥æ ¡éªè¡ä¸ºä¸æ¹å¨åå®å
¨ä¸è´ï¼å¦å¤**ä¸è½å message**ï¼å¦åä¼è¦çä¸é¢èªå®ä¹ validator çæ¥éææ¡ã |
| | | required: true, |
| | | // è´¦æ·ç±»åéæ©"å使ºæ"æ¶ä¸éè¦èº«ä»½è¯å· |
| | | validator: (rule, value, callback) => { |
| | | if (this.hasUserType(this.accountselectform.usertype, "org")) { |
| | |
| | | }); |
| | | this.batchdialogVisible = true; |
| | | }, |
| | | /** |
| | | * æç»è¡æ¯å¦ä¸ºã空记å½ãï¼æå¡é¡¹ç®ãä¸å®¶ãä¸å®¶æå¨åä½ æ¯å¦é½ä¸ºç©º |
| | | * ç¨äºæ¹éå½å
¥ä¸å®¶æ¶å¤æ"å¤ç¨æåä¸è¡"è¿æ¯"è¿½å æ°è¡" |
| | | */ |
| | | isBlankDetailRow(row) { |
| | | if (!row) { |
| | | return false; |
| | | } |
| | | const isEmpty = v => |
| | | v === null || v === undefined || String(v).trim() === ""; |
| | | return ( |
| | | isEmpty(row.itemid) && |
| | | isEmpty(row.beneficiaryname) && |
| | | isEmpty(row.unitno) && |
| | | isEmpty(row.unitname) |
| | | ); |
| | | }, |
| | | /** æ¹éå½å
¥å¼¹æ¡ï¼å§å/åä½/å·¥å·/身份è¯å4ä½ å½ä¸å¤æ */ |
| | | personMatchKeyword(item, kw) { |
| | | const idcard = String(item.idcrad || ""); |
| | |
| | | existed[String(row.beneficiaryname).trim()] = true; |
| | | } |
| | | }); |
| | | |
| | | // 2026-10-22ï¼ä¿®æ£"导å
¥åè¡¨æ ¼å¤åºä¸è¡ç©ºè®°å½"ã |
| | | // è§åï¼å
çæå䏿¡è®°å½ï¼è¥å®ç"æå¡é¡¹ç® / ä¸å®¶ / ä¸å®¶æå¨åä½"齿¯ç©ºçï¼ |
| | | // è¯´ææ¯ä¸æ¡ç©ºè®°å½ï¼å°±ä»è¿ä¸è¡å¼å§å¡«ï¼å¦åè¿½å æ°è¡ã |
| | | let writeIndex = this.rbDetails.length; |
| | | if ( |
| | | writeIndex > 0 && |
| | | this.isBlankDetailRow(this.rbDetails[writeIndex - 1]) |
| | | ) { |
| | | writeIndex -= 1; |
| | | } |
| | | |
| | | const duplicated = []; |
| | | this.checkedCities.forEach(item => { |
| | |
| | | annexfiles: null |
| | | }; |
| | | |
| | | this.rbDetails.push(rowData); |
| | | if (writeIndex < this.rbDetails.length) { |
| | | // å¤ç¨æå飿¡ç©ºè®°å½ |
| | | this.rbDetails.splice(writeIndex, 1, rowData); |
| | | } else { |
| | | this.rbDetails.push(rowData); |
| | | } |
| | | writeIndex++; |
| | | }); |
| | | for (let i = 0; i < this.rbDetails.length; i++) { |
| | | this.rbDetails[i].orderno = i + 1; |
| | |
| | | //ä¸å®¶/å»çæºæ/è´¹ç¨æ¥éæºæéæ© |
| | | confirmSelectionDialog() { |
| | | this.$refs["accountselectform"].validate(valid => { |
| | | // 2026-10-19ï¼åæ¥æ²¡æå¤æ validï¼æ ¡éªå¤±è´¥ä¹ç
§æ ·å¾ä¸èµ°ãç
§æ ·ä¿åï¼æå·/红åå½¢åèè®¾ï¼ |
| | | if (!valid) { |
| | | return; |
| | | } |
| | | let tempIndex = this.accountselectform.index; |
| | | if (this.selectionType == "account") { |
| | | if (this.accountfrom == "1") { |
| | |
| | | <!-- --> |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | | label-width="70px" |
| | | > |
| | | <el-row align="left"> |
| | | <el-col :span="6"> |
| | | <el-form-item label="å§å" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.name" |
| | | placeholder="请è¾å
¥å§å" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æç®è¿åº¦" prop="recordstate"> |
| | | <el-select |
| | | v-model="queryParams.recordstate" |
| | | placeholder="è¯·éæ©è®°å½ç¶æ" |
| | | clearable |
| | | size="small" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_DonationStatus" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æç®è
" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.donorname" |
| | | placeholder="请è¾å
¥æç®è
å§å" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="mini" |
| | | @click="handleQuery" |
| | | >æç´¢</el-button |
| | | > |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" |
| | | >éç½®</el-button |
| | | > |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-card shadow="never"> |
| | | <!-- æç®æ¡ä¾å表 --> |
| | | <el-row> |
| | | <el-col :span="10"> |
| | | <el-row type="flex" :gutter="10" align="right" class="mb8"> |
| | | </el-row> |
| | | </el-col> |
| | | </el-row> |
| | | <el-table |
| | | v-loading="loading" |
| | | border |
| | | highlight-current-row |
| | | :data="donatebaseinfoList" |
| | | @row-click="selectDonotor" |
| | | > |
| | | <!-- <el-table-column label="æç®ç¼å·" align="center" prop="donorno" /> --> |
| | | <el-table-column label="æç®è¿åº¦" align="center" prop="recordstate"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.sys_DonationStatus" |
| | | :value="scope.row.recordstate" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="å§å" align="center" prop="name" /> |
| | | </el-table> |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | small |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getBaseInfoList" |
| | | /> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="18"> |
| | | <el-col :span="24"> |
| | | <el-card shadow="naver"> |
| | | <el-form ref="infoform" label-width="100px"> |
| | | <el-row :gutter="4" align="right" class="mb8"> |
| | | <el-col :span="9"> |
| | | <el-form-item label="æç®ç¼å·"> |
| | | <el-input |
| | | v-model="curCase.donorno" |
| | | :disabled="true" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="å§å"> |
| | | <el-input v-model="curCase.name" :disabled="true"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- æ¥éåçéï¼æç®è
ã审æ¹ç¶æ --> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="fundQueryParam" |
| | | ref="fundQueryForm" |
| | | :inline="true" |
| | | label-width="82px" |
| | | > |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æç®è
" prop="donorname"> |
| | | <el-input |
| | | v-model="fundQueryParam.donorname" |
| | | placeholder="请è¾å
¥æç®è
å§å" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQueryFund" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="审æ¹ç¶æ" prop="recordstatus"> |
| | | <el-select |
| | | v-model="fundQueryParam.recordstatus" |
| | | placeholder="è¯·éæ©å®¡æ¹ç¶æ" |
| | | clearable |
| | | size="small" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_recordstatus" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="Number(dict.value)" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label-width="10px"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="small" |
| | | @click="handleQueryFund" |
| | | >æç´¢</el-button |
| | | > |
| | | <el-button |
| | | icon="el-icon-refresh" |
| | | size="small" |
| | | @click="resetFundQuery" |
| | | >éç½®</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æç®è
" |
| | | align="center" |
| | | prop="donorname" |
| | | width="110px" |
| | | show-overflow-tooltip |
| | | /> |
| | | <!-- |
| | | <el-table-column label="èç³»çµè¯" align="center" prop="phone" width="150px" /> |
| | | <el-table-column label="å·¥ä½åä½" align="center" prop="unitname" width="220px" /> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <!-- æªéæ©æ¡ä¾æ¶å±ç¤ºè¯¥ç»å½äººå
¨é¨ä¼¦ç审æ¥åæ®ï¼è¶
è¿ä¸é¡µå¯ç¨å页翻ç --> |
| | | <pagination |
| | | v-show="fundTotal > 0" |
| | | :total="fundTotal" |
| | | small |
| | | :page.sync="fundQueryParam.pageNum" |
| | | :limit.sync="fundQueryParam.pageSize" |
| | | @pagination="listFundData" |
| | | /> |
| | | </el-row> |
| | | </el-form> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- æ°å¢ç³è¯·ååå
éæ©æç®æ¡ä¾ï¼å左侧æ¡ä¾å表移å°è¿éï¼ --> |
| | | <el-dialog |
| | | title="éæ©æç®æ¡ä¾" |
| | | :visible.sync="caseDialogVisible" |
| | | width="760px" |
| | | append-to-body |
| | | > |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | | label-width="70px" |
| | | > |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="å§å" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.name" |
| | | placeholder="请è¾å
¥å§å" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æç®è¿åº¦" prop="recordstate"> |
| | | <el-select |
| | | v-model="queryParams.recordstate" |
| | | placeholder="è¯·éæ©è®°å½ç¶æ" |
| | | clearable |
| | | size="small" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_DonationStatus" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label-width="10px"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="small" |
| | | @click="handleQuery" |
| | | >æç´¢</el-button |
| | | > |
| | | <el-button icon="el-icon-refresh" size="small" @click="resetQuery" |
| | | >éç½®</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <el-table |
| | | ref="caseTable" |
| | | v-loading="loading" |
| | | border |
| | | height="380" |
| | | highlight-current-row |
| | | :data="donatebaseinfoList" |
| | | @row-click="selectDonotor" |
| | | > |
| | | <el-table-column label="æç®è¿åº¦" align="center" prop="recordstate"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.sys_DonationStatus" |
| | | :value="scope.row.recordstate" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="å§å" align="center" prop="name" /> |
| | | <el-table-column label="æä½" align="center" width="90"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="mini" @click="selectDonotor(scope.row)" |
| | | >éæ©</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | small |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getBaseInfoList" |
| | | /> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="caseDialogVisible = false">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <!-- æ·»å æä¿®æ¹è´¹ç¨ç³è¯·å --> |
| | | <el-dialog |
| | |
| | | }, |
| | | fundQueryParam: { |
| | | pageNum: 1, |
| | | pageSize: 100, |
| | | pageSize: 10, |
| | | infoid: null, |
| | | applytype: "2", |
| | | createBy: null |
| | | createBy: null, |
| | | // æ¥éåç鿡件 |
| | | donorname: null, |
| | | recordstatus: null |
| | | }, |
| | | // å³ä¾§æ¥éåæ»æ°ï¼ç¨äºåé¡µï¼ |
| | | fundTotal: 0, |
| | | // ãéæ©æç®æ¡ä¾ãå¯¹è¯æ¡ï¼æ°å¢ç³è¯·åæ¶ä½¿ç¨ï¼ |
| | | caseDialogVisible: false, |
| | | casePickerMode: "", |
| | | // 表ååæ° |
| | | form: {}, |
| | | // è¡¨åæ ¡éª |
| | |
| | | }, |
| | | /** æ°å¢æé®æä½ */ |
| | | handleAdd() { |
| | | if (this.curCase.id) { |
| | | this.$router.push({ |
| | | path: "/finance/applyDetail/", |
| | | query: { |
| | | id: 0, |
| | | businessType: "2", |
| | | operationType: "add", |
| | | curCase: this.curCase |
| | | } |
| | | }); |
| | | } else { |
| | | const h = this.$createElement; |
| | | this.$message({ |
| | | message: h("p", null, [ |
| | | h("span", null, "请å¨å·¦è¾¹çæç®æ¡ä¾è¡¨éæ©éè¦æä½çæ¡ä¾ï¼") |
| | | ]) |
| | | }); |
| | | } |
| | | return; |
| | | // æ°å¢ç³è¯·åï¼å
å¼¹åºãéæ©æç®æ¡ä¾ãå¯¹è¯æ¡ |
| | | this.casePickerMode = "add"; |
| | | this.caseDialogVisible = true; |
| | | this.getBaseInfoList(); |
| | | }, |
| | | |
| | | if (this.curCase.id) { |
| | | this.istrue += 2; |
| | | this.reset(); |
| | | this.dialogOpen = true; |
| | | this.title = "æ·»å è´¹ç¨ç³è¯·"; |
| | | this.dialogType = "edit"; |
| | | this.queryParams.params = {}; |
| | | |
| | | this.form.infoid = this.curCase.id; |
| | | this.form.donorno = this.curCase.donorno; |
| | | this.form.donorname = this.curCase.name; |
| | | this.form.username = this.defaultperson.nickName; |
| | | this.form.userno = this.defaultperson.userName; |
| | | |
| | | this.form.deptmentname = this.defaultperson.dept.deptName; |
| | | this.form.deptmentno = this.defaultperson.dept.deptId; |
| | | this.form.managername = this.defaultperson.dept.leader; |
| | | // this.form.createTime = nowdate; |
| | | //this.open = true; |
| | | //this.initFundApplyForm(); |
| | | this.fundDetailArr = []; |
| | | this.fundflowList = []; |
| | | this.addRow(); |
| | | } else { |
| | | const h = this.$createElement; |
| | | this.$message({ |
| | | message: h("p", null, [h("span", null, "请å
éæ©å·¦æ¹æç®æ¡ä¾ ")]) |
| | | }); |
| | | } |
| | | /** æºå¸¦å·²éæ¡ä¾è·³è½¬å°ç³è¯·åå¡«å页 */ |
| | | goApplyAdd() { |
| | | this.$router.push({ |
| | | path: "/finance/applyDetail/", |
| | | query: { |
| | | id: 0, |
| | | businessType: "2", |
| | | operationType: "add", |
| | | curCase: this.curCase |
| | | } |
| | | }); |
| | | }, |
| | | /** ä¿®æ¹æé®æä½ */ |
| | | handleUpdate(row) { |
| | |
| | | //ç¹å»æç®æ¡ä¾åè¡¨è§¦åæ¹æ³ |
| | | selectDonotor(row, column, event) { |
| | | this.curCase = row; |
| | | this.getfundList(); |
| | | if (this.casePickerMode === "add") { |
| | | // ä»ãæ°å¢ç³è¯·åãè¿å
¥ï¼é宿¡ä¾ç´æ¥è·³å°ç³è¯·åå¡«å页 |
| | | this.casePickerMode = ""; |
| | | this.caseDialogVisible = false; |
| | | this.goApplyAdd(); |
| | | } |
| | | }, |
| | | |
| | | /** æå½å fundQueryParam æ¥è¯¢å³ä¾§æ¥éåå表 */ |
| | | listFundData() { |
| | | this.loading = true; |
| | | listFund(this.fundQueryParam).then(response => { |
| | | this.loading = false; |
| | | this.donateconsolationfundList = response.rows; |
| | | this.fundTotal = response.total; |
| | | }); |
| | | }, |
| | | |
| | | /** æ¥éåçéï¼æç´¢ */ |
| | | handleQueryFund() { |
| | | this.fundQueryParam.pageNum = 1; |
| | | this.listFundData(); |
| | | }, |
| | | |
| | | /** æ¥éåçéï¼éç½®ï¼æ¸
空æ¡ä»¶ä¸å·²éæ¡ä¾ï¼åå°è¯¥ç»å½äººå
¨é¨åæ®ï¼ */ |
| | | resetFundQuery() { |
| | | this.fundQueryParam.donorname = null; |
| | | this.fundQueryParam.recordstatus = null; |
| | | this.getAllfundList(); |
| | | }, |
| | | |
| | | /** æ£ç´¢å
¨é¨ï¼åæ¶æ¡ä¾éæ©ä¸çéæ¡ä»¶ï¼æ¥è¯¢å½åç»å½äººçå
¨é¨ä¼¦ç审æ¥åæ® */ |
| | | getAllfundList() { |
| | | this.curCase = {}; |
| | | if (this.$refs.caseTable) { |
| | | this.$refs.caseTable.setCurrentRow(); |
| | | } |
| | | this.reset(); |
| | | this.fundQueryParam.infoid = null; |
| | | this.fundQueryParam.donorname = null; |
| | | this.fundQueryParam.recordstatus = null; |
| | | this.fundQueryParam.pageNum = 1; |
| | | this.listFundData(); |
| | | }, |
| | | |
| | | //è·åæ¡ä¾ä¸å®¶è´¹ç¨ç³è¯·å |
| | | getfundList() { |
| | | this.loading = true; |
| | | this.reset(); |
| | | // é䏿¡ä¾åææ¡ä¾å±ç¤ºï¼åæ¶æ¸
æå表ç鿡件ï¼é¿å
两个æ¡ä»¶å å 导è´ç©ºå表 |
| | | this.fundQueryParam.donorname = null; |
| | | this.fundQueryParam.recordstatus = null; |
| | | this.fundQueryParam.infoid = this.curCase.id; |
| | | listFund(this.fundQueryParam).then(response => { |
| | | this.loading = false; |
| | | this.donateconsolationfundList = response.rows; |
| | | }); |
| | | this.fundQueryParam.pageNum = 1; |
| | | this.listFundData(); |
| | | }, |
| | | |
| | | select(row) { |
| | |
| | | //çå½å¨æ - åå»ºå®æï¼å¯ä»¥è®¿é®å½åthiså®ä¾ï¼ |
| | | created() { |
| | | this.getUnitList(); |
| | | this.getList(); |
| | | this.getBaseInfoList(); |
| | | // æ¡ä¾å表已移å
¥ãéæ©æç®æ¡ä¾ãå¯¹è¯æ¡ï¼æå¼å¯¹è¯æ¡æ¶åæ¥è¯¢ |
| | | this.getlistUser(); |
| | | this.getCurFundType(); |
| | | // é¦å±å±ç¤ºå½åç»å½äººçå
¨é¨ä¼¦ç审æ¥åæ® |
| | | this.getAllfundList(); |
| | | }, |
| | | //çå½å¨æ - æè½½å®æï¼å¯ä»¥è®¿é®DOMå
ç´ ï¼ |
| | | mounted() { |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-card shadow="never"> |
| | | <!-- æç®æ¡ä¾å表 --> |
| | | <el-row> |
| | | <el-col :span="10"> |
| | | <el-row type="flex" :gutter="10" align="right" class="mb8"> |
| | | </el-row> |
| | | </el-col> |
| | | </el-row> |
| | | <div> |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | | label-width="70px" |
| | | > |
| | | <el-form-item label="å§å" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.name" |
| | | placeholder="请è¾å
¥å§å" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="æç®è¿åº¦" prop="recordstate"> |
| | | <el-select |
| | | v-model="queryParams.recordstate" |
| | | placeholder="è¯·éæ©è®°å½ç¶æ" |
| | | clearable |
| | | size="small" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_DonationStatus" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <div style="float: right; margin-bottom: 10px;"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="mini" |
| | | @click="handleQuery" |
| | | >æç´¢</el-button |
| | | > |
| | | <el-button |
| | | icon="el-icon-refresh" |
| | | size="mini" |
| | | @click="resetQuery" |
| | | >éç½®</el-button |
| | | > |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | <el-table |
| | | v-loading="loading" |
| | | highlight-current-row |
| | | :data="donatebaseinfoList" |
| | | @row-click="selectDonotor" |
| | | > |
| | | <!-- <el-table-column label="æç®ç¼å·" align="center" prop="donorno" /> --> |
| | | <el-table-column label="æç®è¿åº¦" align="center" prop="recordstate"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.sys_DonationStatus" |
| | | :value="scope.row.recordstate" |
| | | :key="dict.value" |
| | | /> |
| | | <!-- :label="dict.label" --> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="å§å" align="center" prop="name" /> |
| | | </el-table> |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | small |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getBaseInfoList" |
| | | /> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="18"> |
| | | <el-col :span="24"> |
| | | <el-card shadow="naver"> |
| | | <el-form ref="infoform" label-width="100px"> |
| | | <el-row :gutter="4" align="right" class="mb8"> |
| | | <el-col :span="7"> |
| | | <el-form-item label="æç®ç¼å·"> |
| | | <el-input |
| | | v-model="curCase.donorno" |
| | | :disabled="true" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="å§å"> |
| | | <el-input v-model="curCase.name" :disabled="true"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="3"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="mini" |
| | | @click="allgetfundList" |
| | | >æ£ç´¢å
¨é¨</el-button |
| | | > |
| | | </el-col> |
| | | </el-row> |
| | | <!-- æ¥éåçéï¼æç®è
ã审æ¹ç¶æ --> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="fundQueryParam" |
| | | ref="fundQueryForm" |
| | | :inline="true" |
| | | label-width="82px" |
| | | > |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æç®è
" prop="donorname"> |
| | | <el-input |
| | | v-model="fundQueryParam.donorname" |
| | | placeholder="请è¾å
¥æç®è
å§å" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQueryFund" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="审æ¹ç¶æ" prop="recordstatus"> |
| | | <el-select |
| | | v-model="fundQueryParam.recordstatus" |
| | | placeholder="è¯·éæ©å®¡æ¹ç¶æ" |
| | | clearable |
| | | size="small" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_recordstatus" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="Number(dict.value)" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label-width="10px"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="small" |
| | | @click="handleQueryFund" |
| | | >æç´¢</el-button |
| | | > |
| | | <el-button |
| | | icon="el-icon-refresh" |
| | | size="small" |
| | | @click="resetFundQuery" |
| | | >éç½®</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | |
| | | <!-- v-hasPermi="['project:expretfund:download']" --> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- 2026-10-22ï¼æè¦æ±éèãåè½ãåï¼çº¿ä¸æ¥éï¼ï¼éè¦æ¶åæ¶æ³¨éå³å¯æ¢å¤ --> |
| | | <!-- |
| | | <el-table-column |
| | | fixed="right" |
| | | align="center" |
| | |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | --> |
| | | </el-table> |
| | | <!-- æªéæ©æ¡ä¾æ¶å±ç¤ºè¯¥ç»å½äººå
¨é¨ä¸å®¶å³å¡åæ®ï¼è¶
è¿ä¸é¡µå¯ç¨å页翻ç --> |
| | | <pagination |
| | | v-show="fundTotal > 0" |
| | | :total="fundTotal" |
| | | small |
| | | :page.sync="fundQueryParam.pageNum" |
| | | :limit.sync="fundQueryParam.pageSize" |
| | | @pagination="listFundData" |
| | | /> |
| | | </el-row> |
| | | </el-form> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- æ°å¢ç³è¯·ååå
éæ©æç®æ¡ä¾ï¼å左侧æ¡ä¾å表移å°è¿éï¼ --> |
| | | <el-dialog |
| | | title="éæ©æç®æ¡ä¾" |
| | | :visible.sync="caseDialogVisible" |
| | | width="760px" |
| | | append-to-body |
| | | > |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | | label-width="70px" |
| | | > |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="å§å" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.name" |
| | | placeholder="请è¾å
¥å§å" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æç®è¿åº¦" prop="recordstate"> |
| | | <el-select |
| | | v-model="queryParams.recordstate" |
| | | placeholder="è¯·éæ©è®°å½ç¶æ" |
| | | clearable |
| | | size="small" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_DonationStatus" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label-width="10px"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="small" |
| | | @click="handleQuery" |
| | | >æç´¢</el-button |
| | | > |
| | | <el-button icon="el-icon-refresh" size="small" @click="resetQuery" |
| | | >éç½®</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <el-table |
| | | ref="caseTable" |
| | | v-loading="loading" |
| | | border |
| | | height="380" |
| | | highlight-current-row |
| | | :data="donatebaseinfoList" |
| | | @row-click="selectDonotor" |
| | | > |
| | | <el-table-column label="æç®è¿åº¦" align="center" prop="recordstate"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.sys_DonationStatus" |
| | | :value="scope.row.recordstate" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="å§å" align="center" prop="name" /> |
| | | <el-table-column label="æä½" align="center" width="90"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="mini" @click="selectDonotor(scope.row)" |
| | | >éæ©</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | small |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getBaseInfoList" |
| | | /> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="caseDialogVisible = false">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <!-- æ·»å æä¿®æ¹è´¹ç¨ç³è¯·å --> |
| | | <el-dialog |
| | |
| | | }, |
| | | fundQueryParam: { |
| | | pageNum: 1, |
| | | pageSize: 100, |
| | | pageSize: 10, |
| | | infoid: null, |
| | | applytype: "1", |
| | | createBy: null |
| | | createBy: null, |
| | | // æ¥éåç鿡件 |
| | | donorname: null, |
| | | recordstatus: null |
| | | }, |
| | | // å³ä¾§æ¥éåæ»æ°ï¼ç¨äºåé¡µï¼ |
| | | fundTotal: 0, |
| | | // 表ååæ° |
| | | form: {}, |
| | | //ææäººå表 |
| | |
| | | donatebaseinfoList: [], |
| | | //å½åéä¸æç®æ¡ä¾ |
| | | curCase: {}, |
| | | // ãéæ©æç®æ¡ä¾ãå¯¹è¯æ¡ï¼æ°å¢ç³è¯·åæ¶ä½¿ç¨ï¼ |
| | | caseDialogVisible: false, |
| | | casePickerMode: "", |
| | | //æ¯å¦æ¾ç¤ºè´¹ç¨ç³è¯·å¼¹çª |
| | | dialogOpen: false, |
| | | // title: "", |
| | |
| | | watch: {}, |
| | | //çå½å¨æ - åå»ºå®æï¼å¯ä»¥è®¿é®å½åthiså®ä¾ï¼ |
| | | created() { |
| | | this.getList(); |
| | | this.getBaseInfoList(); |
| | | // æ¡ä¾å表已移å
¥ãéæ©æç®æ¡ä¾ãå¯¹è¯æ¡ï¼æå¼å¯¹è¯æ¡æ¶åæ¥è¯¢ |
| | | this.getCurFundType(); |
| | | this.getUserList(); |
| | | this.getUnitList(); |
| | | // é¦å±å±ç¤ºå½åç»å½äººçå
¨é¨ä¸å®¶å³å¡åæ® |
| | | this.allgetfundList(); |
| | | }, |
| | | |
| | | //çå½å¨æ - æè½½å®æï¼å¯ä»¥è®¿é®DOMå
ç´ ï¼ |
| | |
| | | }); |
| | | }, |
| | | |
| | | /** æ°å¢æé®æä½ */ |
| | | /** æ°å¢æé®æä½ï¼å
å¼¹åºãéæ©æç®æ¡ä¾ãå¯¹è¯æ¡ */ |
| | | handleAdd() { |
| | | if (this.curCase.id) { |
| | | this.$router.push({ |
| | | path: "/finance/applyDetail/", |
| | | query: { |
| | | id: 0, |
| | | businessType: "1", |
| | | operationType: "add", |
| | | curCase: this.curCase |
| | | } |
| | | }); |
| | | } else { |
| | | const h = this.$createElement; |
| | | this.$message({ |
| | | message: h("p", null, [ |
| | | h("span", null, "请å¨å·¦è¾¹çæç®æ¡ä¾è¡¨éæ©éè¦æä½çæ¡ä¾ï¼") |
| | | ]) |
| | | }); |
| | | } |
| | | return; |
| | | this.casePickerMode = "add"; |
| | | this.caseDialogVisible = true; |
| | | this.getBaseInfoList(); |
| | | }, |
| | | |
| | | if (this.curCase.id) { |
| | | this.istrue += 2; |
| | | this.reset(); |
| | | this.queryParams.params = {}; |
| | | this.form.infoid = this.curCase.id; |
| | | this.form.donorno = this.curCase.donorno; |
| | | this.form.donorname = this.curCase.name; |
| | | |
| | | this.form.username = this.defaultperson.nickName; |
| | | this.form.userno = this.defaultperson.userName; |
| | | this.form.phone = this.defaultperson.phonenumber; |
| | | this.form.deptmentname = this.defaultperson.dept.deptName; |
| | | this.form.deptmentno = this.defaultperson.dept.deptId; |
| | | this.form.managername = this.defaultperson.dept.leader; |
| | | |
| | | // this.form.createTime = nowdate; |
| | | //this.open = true; |
| | | //this.initFundApplyForm(); |
| | | this.fundDetails = []; |
| | | this.addRow(); |
| | | this.dialogOpen = true; |
| | | this.dialogType = "edit"; |
| | | this.title = "è´¹ç¨ç³è¯·"; |
| | | } else { |
| | | const h = this.$createElement; |
| | | this.$message({ |
| | | message: h("p", null, [h("span", null, "请å
éæ©å·¦æ¹æç®æ¡ä¾ ")]) |
| | | }); |
| | | } |
| | | /** æºå¸¦å·²éæ¡ä¾è·³è½¬å°ç³è¯·åå¡«å页 */ |
| | | goApplyAdd() { |
| | | this.$router.push({ |
| | | path: "/finance/applyDetail/", |
| | | query: { |
| | | id: 0, |
| | | businessType: "1", |
| | | operationType: "add", |
| | | curCase: this.curCase |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | /** ä¿®æ¹æé®æä½ */ |
| | |
| | | //ç¹å»æç®æ¡ä¾åè¡¨è§¦åæ¹æ³ |
| | | selectDonotor(row, column, event) { |
| | | this.curCase = row; |
| | | this.getfundList(); |
| | | if (this.casePickerMode === "add") { |
| | | // ä»ãæ°å¢ç³è¯·åãè¿å
¥ï¼é宿¡ä¾ç´æ¥è·³å°ç³è¯·åå¡«å页 |
| | | this.casePickerMode = ""; |
| | | this.caseDialogVisible = false; |
| | | this.goApplyAdd(); |
| | | } |
| | | }, |
| | | allgetfundList() { |
| | | this.loading = true; |
| | | // æ£ç´¢å
¨é¨ï¼åæ¶å·¦ä¾§æ¡ä¾éæ©ä¸çéæ¡ä»¶ï¼æ¥è¯¢å½åç»å½äººçå
¨é¨ä¸å®¶å³å¡åæ® |
| | | this.curCase = {}; |
| | | if (this.$refs.caseTable) { |
| | | this.$refs.caseTable.setCurrentRow(); |
| | | } |
| | | this.reset(); |
| | | this.fundQueryParam.infoid = null; |
| | | this.fundQueryParam.donorname = null; |
| | | this.fundQueryParam.recordstatus = null; |
| | | this.fundQueryParam.pageNum = 1; |
| | | this.listFundData(); |
| | | }, |
| | | /** æ¥éåçéï¼æç´¢ */ |
| | | handleQueryFund() { |
| | | this.fundQueryParam.pageNum = 1; |
| | | this.listFundData(); |
| | | }, |
| | | /** æ¥éåçéï¼éç½®ï¼æ¸
空æ¡ä»¶ä¸å·²éæ¡ä¾ï¼åå°è¯¥ç»å½äººå
¨é¨åæ®ï¼ */ |
| | | resetFundQuery() { |
| | | this.fundQueryParam.donorname = null; |
| | | this.fundQueryParam.recordstatus = null; |
| | | this.allgetfundList(); |
| | | }, |
| | | /** |
| | | * æå½å fundQueryParam æ¥è¯¢å³ä¾§æ¥éåå表 |
| | | * infoid 为空 = å½åç»å½äººçå
¨é¨è¯¥ç±»ååæ®ï¼æå¼ = æå®æ¡ä¾ |
| | | */ |
| | | listFundData() { |
| | | this.loading = true; |
| | | listFund(this.fundQueryParam).then(response => { |
| | | this.loading = false; |
| | | this.donateconsolationfundList = response.rows; |
| | | this.fundTotal = response.total; |
| | | }); |
| | | }, |
| | | getfundList() { |
| | | this.loading = true; |
| | | this.reset(); |
| | | // é䏿¡ä¾åææ¡ä¾å±ç¤ºï¼åæ¶æ¸
æå表ç鿡件ï¼é¿å
两个æ¡ä»¶å å 导è´ç©ºå表 |
| | | this.fundQueryParam.donorname = null; |
| | | this.fundQueryParam.recordstatus = null; |
| | | this.fundQueryParam.infoid = this.curCase.id; |
| | | listFund(this.fundQueryParam).then(response => { |
| | | this.loading = false; |
| | | this.donateconsolationfundList = response.rows; |
| | | }); |
| | | this.fundQueryParam.pageNum = 1; |
| | | this.listFundData(); |
| | | }, |
| | | |
| | | //导å
¥ææé¡¹ç® |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="æç®è
ç¼å·" prop="donorno"> |
| | | <el-input v-model="queryParams.donorno" placeholder="请è¾å
¥æç®è
ç¼å·" clearable size="small" |
| | | @keyup.enter.native="handleQuery" /> |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-card shadow="never"> |
| | | <!-- æç®æ¡ä¾å表 --> |
| | | <el-row> |
| | | <el-col :span="10"> |
| | | <el-row type="flex" :gutter="10" align="right" class="mb8"> |
| | | </el-row> |
| | | </el-col> |
| | | </el-row> |
| | | <div> |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | | label-width="70px" |
| | | > |
| | | <el-form-item label="å§å" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.name" |
| | | placeholder="请è¾å
¥å§å" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="æç®è¿åº¦" prop="recordstate"> |
| | | <el-select |
| | | v-model="queryParams.recordstate" |
| | | placeholder="è¯·éæ©è®°å½ç¶æ" |
| | | clearable |
| | | size="small" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_DonationStatus" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <div style="float: right; margin-bottom: 10px;"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="mini" |
| | | @click="handleQuery" |
| | | >æç´¢</el-button |
| | | > |
| | | <el-button |
| | | icon="el-icon-refresh" |
| | | size="mini" |
| | | @click="resetQuery" |
| | | >éç½®</el-button |
| | | > |
| | | </div> |
| | | </el-form> |
| | | </div> |
| | | <el-table |
| | | v-loading="loading" |
| | | border |
| | | highlight-current-row |
| | | :data="donatebaseinfoList" |
| | | @row-click="selectDonotor" |
| | | > |
| | | <!-- <el-table-column label="æç®ç¼å·" align="center" prop="donorno" /> --> |
| | | <el-table-column label="æç®è¿åº¦" align="center" prop="recordstate"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.sys_DonationStatus" |
| | | :value="scope.row.recordstate" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="å§å" align="center" prop="name" /> |
| | | </el-table> |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | small |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getBaseInfoList" |
| | | /> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="18"> |
| | | <el-col :span="24"> |
| | | <el-card shadow="naver"> |
| | | <el-form ref="infoform" label-width="100px"> |
| | | <el-row :gutter="4" align="right" class="mb8"> |
| | | <el-col :span="9"> |
| | | <el-form-item label="æç®ç¼å·"> |
| | | <el-input |
| | | v-model="curCase.donorno" |
| | | :disabled="true" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="9"> |
| | | <el-form-item label="å§å"> |
| | | <el-input v-model="curCase.name" :disabled="true"></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col> </el-col> |
| | | </el-row> |
| | | <!-- æ¥éåçéï¼æç®è
ã审æ¹ç¶æ --> |
| | | <el-form class="opo-query-form" :model="fundQueryParam" ref="fundQueryForm" :inline="true" |
| | | label-width="82px"> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æç®è
" prop="donorname"> |
| | | <el-input v-model="fundQueryParam.donorname" placeholder="请è¾å
¥æç®è
å§å" clearable size="small" |
| | | @keyup.enter.native="handleQueryFund" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="审æ¹ç¶æ" prop="recordstatus"> |
| | | <el-select v-model="fundQueryParam.recordstatus" placeholder="è¯·éæ©å®¡æ¹ç¶æ" clearable size="small" |
| | | style="width: 100%"> |
| | | <el-option v-for="dict in dict.type.sys_recordstatus" :key="dict.value" :label="dict.label" |
| | | :value="Number(dict.value)" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label-width="10px"> |
| | | <el-button type="primary" icon="el-icon-search" size="small" @click="handleQueryFund">æç´¢</el-button> |
| | | <el-button icon="el-icon-refresh" size="small" @click="resetFundQuery">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="mini" |
| | | @click="handleAdd" |
| | | v-hasPermi="['project:medicalfund:add']" |
| | | >æ°å¢ç³è¯·å</el-button |
| | | > |
| | | <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd" |
| | | v-hasPermi="['project:medicalfund:add']">æ°å¢ç³è¯·å</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-table |
| | | v-loading="loading" |
| | | border |
| | | :data="donateconsolationfundList" |
| | | :row-class-name="rowClassName" |
| | | > |
| | | <el-table-column |
| | | label="ç³è¯·æ¥æ" |
| | | align="center" |
| | | prop="applyTime" |
| | | width="150px" |
| | | > |
| | | <el-table v-loading="loading" border :data="donateconsolationfundList" :row-class-name="rowClassName"> |
| | | <el-table-column label="ç³è¯·æ¥æ" align="center" prop="applyTime" width="150px"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ |
| | | parseTime(scope.row.applyTime, "{y}-{m}-{d}") |
| | | }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="ç³è¯·äºº" |
| | | align="center" |
| | | prop="username" |
| | | width="120px" |
| | | /> |
| | | <el-table-column |
| | | label="ç³è¯·éé¢" |
| | | align="center" |
| | | prop="pretaxcost" |
| | | width="200px" |
| | | /> |
| | | <el-table-column |
| | | label="æå±ç»å«" |
| | | align="center" |
| | | prop="deptmentname" |
| | | width="220px" |
| | | /> |
| | | <el-table-column |
| | | label="ç»é¿" |
| | | align="center" |
| | | prop="managername" |
| | | width="200px" |
| | | /> |
| | | <el-table-column |
| | | label="å®¡æ ¸ç¶æ" |
| | | align="center" |
| | | prop="recordstatus" |
| | | > |
| | | <el-table-column label="ç»å人" align="center" prop="username" width="120px" /> |
| | | <el-table-column label="ç³è¯·éé¢" align="center" prop="pretaxcost" width="200px" /> |
| | | <el-table-column label="å®¡æ ¸ç¶æ" align="center" prop="recordstatus"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.sys_recordstatus" |
| | | :value="scope.row.recordstatus" |
| | | /> |
| | | <dict-tag :options="dict.type.sys_recordstatus" :value="scope.row.recordstatus" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="ææé¢å®¡ç¶æ" |
| | | width="140" |
| | | align="center" |
| | | prop="checkstatus" |
| | | > |
| | | <el-table-column label="ææé¢å®¡ç¶æ" width="140" align="center" prop="checkstatus"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.sys_stage_type" |
| | | :value="scope.row.checkstatus" |
| | | /> |
| | | <dict-tag :options="dict.type.sys_stage_type" :value="scope.row.checkstatus" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æç®è
" align="center" prop="donorname" show-overflow-tooltip /> |
| | | <el-table-column label="æå±ç»å«" align="center" prop="deptmentname"/> |
| | | <el-table-column label="ç»é¿" align="center" prop="managername" /> |
| | | <!-- |
| | | <el-table-column label="èç³»çµè¯" align="center" prop="phone" width="150px" /> |
| | | <el-table-column label="å·¥ä½åä½" align="center" prop="unitname" width="150px" /> |
| | | --> |
| | | <el-table-column |
| | | label="æä½" |
| | | fixed="right" |
| | | align="center" |
| | | class-name="small-padding fixed-width" |
| | | width="280px" |
| | | > |
| | | <el-table-column label="æä½" fixed="right" align="center" class-name="small-padding fixed-width" |
| | | width="280px"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | v-if=" |
| | | scope.row.recordstatus == -1 || |
| | | scope.row.recordstatus == 1 |
| | | " |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleup(scope.row)" |
| | | >䏿¥</el-button |
| | | > |
| | | <el-button |
| | | v-if=" |
| | | scope.row.recordstatus == -1 || |
| | | scope.row.recordstatus == 1 |
| | | " |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleUpdate(scope.row)" |
| | | >ä¿®æ¹</el-button |
| | | > |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-view" |
| | | @click="handleDetail(scope.row)" |
| | | >æ¥ç</el-button |
| | | > |
| | | <el-button |
| | | v-if=" |
| | | scope.row.recordstatus == -1 || |
| | | scope.row.recordstatus == 1 |
| | | " |
| | | size="mini" |
| | | type="text" |
| | | @click="handleDelete(scope.row)" |
| | | ><span class="button-delete" |
| | | ><i class="el-icon-delete"></i>å é¤</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-download" |
| | | @click="mixExport(scope.row.id)" |
| | | >ä¸è½½</el-button |
| | | > |
| | | <el-button v-if=" |
| | | scope.row.recordstatus == -1 || |
| | | scope.row.recordstatus == 1 |
| | | " size="mini" type="text" icon="el-icon-edit" @click="handleup(scope.row)">䏿¥</el-button> |
| | | <el-button v-if=" |
| | | scope.row.recordstatus == -1 || |
| | | scope.row.recordstatus == 1 |
| | | " size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">ä¿®æ¹</el-button> |
| | | <el-button size="mini" type="text" icon="el-icon-view" |
| | | @click="handleDetail(scope.row)">æ¥ç</el-button> |
| | | <el-button v-if=" |
| | | scope.row.recordstatus == -1 || |
| | | scope.row.recordstatus == 1 |
| | | " size="mini" type="text" @click="handleDelete(scope.row)"><span class="button-delete"><i |
| | | class="el-icon-delete"></i>å é¤</span></el-button> |
| | | <el-button size="mini" type="text" icon="el-icon-download" |
| | | @click="mixExport(scope.row.id)">ä¸è½½</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <!-- 2026-10-22ï¼æè¦æ±éèãåè½ãåï¼çº¿ä¸æ¥éï¼ï¼éè¦æ¶åæ¶æ³¨éå³å¯æ¢å¤ --> |
| | | <!-- |
| | | <el-table-column |
| | | fixed="right" |
| | | align="center" |
| | |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | --> |
| | | </el-table> |
| | | <!-- æªéæ©æ¡ä¾æ¶å±ç¤ºè¯¥ç»å½äººå
¨é¨å»å¦ææ¬åæ®ï¼è¶
è¿ä¸é¡µå¯ç¨å页翻ç --> |
| | | <pagination v-show="fundTotal > 0" :total="fundTotal" small :page.sync="fundQueryParam.pageNum" |
| | | :limit.sync="fundQueryParam.pageSize" @pagination="listFundData" /> |
| | | </el-row> |
| | | </el-form> |
| | | </el-card> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- æ°å¢ç³è¯·ååå
éæ©æç®æ¡ä¾ï¼å左侧æ¡ä¾å表移å°è¿éï¼ --> |
| | | <el-dialog title="éæ©æç®æ¡ä¾" :visible.sync="caseDialogVisible" width="760px" append-to-body> |
| | | <el-form class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" label-width="70px"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="å§å" prop="name"> |
| | | <el-input v-model="queryParams.name" placeholder="请è¾å
¥å§å" clearable size="small" |
| | | @keyup.enter.native="handleQuery" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="æç®è¿åº¦" prop="recordstate"> |
| | | <el-select v-model="queryParams.recordstate" placeholder="è¯·éæ©è®°å½ç¶æ" clearable size="small" |
| | | style="width: 100%"> |
| | | <el-option v-for="dict in dict.type.sys_DonationStatus" :key="dict.value" :label="dict.label" |
| | | :value="dict.value" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label-width="10px"> |
| | | <el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">æç´¢</el-button> |
| | | <el-button icon="el-icon-refresh" size="small" @click="resetQuery">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <el-table ref="caseTable" v-loading="loading" border height="380" highlight-current-row :data="donatebaseinfoList" |
| | | @row-click="selectDonotor"> |
| | | <el-table-column label="æç®è¿åº¦" align="center" prop="recordstate"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.sys_DonationStatus" :value="scope.row.recordstate" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="å§å" align="center" prop="name" /> |
| | | <el-table-column label="æä½" align="center" width="90"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="mini" @click="selectDonotor(scope.row)">éæ©</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <pagination v-show="total > 0" :total="total" small :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" @pagination="getBaseInfoList" /> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="caseDialogVisible = false">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | |
| | | fundQueryParam: { |
| | | pageNum: 1, |
| | | pageSize: 100, |
| | | pageSize: 10, |
| | | infoid: null, |
| | | applytype: "3", |
| | | createBy: null |
| | | createBy: null, |
| | | // æ¥éåç鿡件 |
| | | donorname: null, |
| | | recordstatus: null |
| | | }, |
| | | // 表ååæ° |
| | | form: {}, |
| | |
| | | donatebaseinfoList: [], |
| | | //å½åéä¸æç®æ¡ä¾ |
| | | curCase: {}, |
| | | // ãéæ©æç®æ¡ä¾ãå¯¹è¯æ¡ï¼æ°å¢ç³è¯·åæ¶ä½¿ç¨ï¼ |
| | | caseDialogVisible: false, |
| | | casePickerMode: "", |
| | | //æ¯å¦æ¾ç¤ºè´¹ç¨ç³è¯·å¼¹çª |
| | | dialogOpen: false, |
| | | // title: "", |
| | |
| | | |
| | | // æç®äººéæ
°é®éè¡¨æ ¼æ°æ® |
| | | donateconsolationfundList: [], |
| | | // å³ä¾§æ¥éåæ»æ°ï¼ç¨äºåé¡µï¼ |
| | | fundTotal: 0, |
| | | |
| | | //æç»è®°å½ |
| | | fundDetails: [], |
| | |
| | | watch: {}, |
| | | //çå½å¨æ - åå»ºå®æï¼å¯ä»¥è®¿é®å½åthiså®ä¾ï¼ |
| | | created() { |
| | | this.getList(); |
| | | this.getBaseInfoList(); |
| | | // æ¡ä¾å表已移å
¥ãéæ©æç®æ¡ä¾ãå¯¹è¯æ¡ï¼æå¼å¯¹è¯æ¡æ¶åæ¥è¯¢ |
| | | this.getCurFundType(); |
| | | this.getlistUser(); |
| | | // this.getUnitList(); |
| | | // é¦å±å±ç¤ºå½åç»å½äººçå
¨é¨å»å¦ææ¬åæ® |
| | | this.getAllfundList(); |
| | | }, |
| | | |
| | | //çå½å¨æ - æè½½å®æï¼å¯ä»¥è®¿é®DOMå
ç´ ï¼ |
| | |
| | | this.getUsermsg(); |
| | | }, |
| | | |
| | | beforeCreate() {}, //çå½å¨æ - å建ä¹å |
| | | beforeMount() {}, //çå½å¨æ - æè½½ä¹å |
| | | beforeUpdate() {}, //çå½å¨æ - æ´æ°ä¹å |
| | | updated() {}, //çå½å¨æ - æ´æ°ä¹å |
| | | beforeDestroy() {}, //çå½å¨æ - 鿝ä¹å |
| | | destroyed() {}, //çå½å¨æ - 鿝宿 |
| | | activated() {}, //妿页颿keep-aliveç¼ååè½ï¼è¿ä¸ªå½æ°ä¼è§¦å |
| | | beforeCreate() { }, //çå½å¨æ - å建ä¹å |
| | | beforeMount() { }, //çå½å¨æ - æè½½ä¹å |
| | | beforeUpdate() { }, //çå½å¨æ - æ´æ°ä¹å |
| | | updated() { }, //çå½å¨æ - æ´æ°ä¹å |
| | | beforeDestroy() { }, //çå½å¨æ - 鿝ä¹å |
| | | destroyed() { }, //çå½å¨æ - 鿝宿 |
| | | activated() { }, //妿页颿keep-aliveç¼ååè½ï¼è¿ä¸ªå½æ°ä¼è§¦å |
| | | |
| | | //æ¹æ³éå |
| | | methods: { |
| | |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | /** éç½®æé®æä½ï¼æ¡ä¾éæ©å¯¹è¯æ¡å
çæ¡ä¾æ¥è¯¢ï¼ */ |
| | | resetQuery() { |
| | | this.daterangeReporttime = []; |
| | | |
| | |
| | | }); |
| | | }, |
| | | |
| | | /** æ°å¢æé®æä½ */ |
| | | /** æ°å¢æé®æä½ï¼å
å¼¹åºãéæ©æç®æ¡ä¾ãå¯¹è¯æ¡ */ |
| | | handleAdd() { |
| | | if (this.curCase.id) { |
| | | this.$router.push({ |
| | | path: "/finance/applyDetail/", |
| | | query: { |
| | | id: 0, |
| | | businessType: "3", |
| | | operationType: "add", |
| | | curCase: this.curCase, |
| | | } |
| | | }); |
| | | } else { |
| | | const h = this.$createElement; |
| | | this.$message({ |
| | | message: h("p", null, [ |
| | | h("span", null, "请å¨å·¦è¾¹çæç®æ¡ä¾è¡¨éæ©éè¦æä½çæ¡ä¾ï¼") |
| | | ]) |
| | | }); |
| | | } |
| | | return; |
| | | this.casePickerMode = "add"; |
| | | this.caseDialogVisible = true; |
| | | this.getBaseInfoList(); |
| | | }, |
| | | |
| | | if (this.curCase.id) { |
| | | this.istrue += 2; |
| | | this.reset(); |
| | | this.queryParams.params = {}; |
| | | this.form.donorno = this.curCase.donorno; |
| | | this.form.name = this.curCase.name; |
| | | this.form.infoid = this.curCase.id; |
| | | this.form.username = this.defaultperson.nickName; |
| | | this.form.userno = this.defaultperson.userName; |
| | | this.form.deptmentname = this.defaultperson.dept.deptName; |
| | | this.form.deptmentno = this.defaultperson.dept.deptId; |
| | | this.form.managername = this.defaultperson.dept.leader; |
| | | |
| | | // this.form.createTime = nowdate; |
| | | //this.open = true; |
| | | //this.initFundApplyForm(); |
| | | this.fundDetails = []; |
| | | this.addRow(); |
| | | this.dialogOpen = true; |
| | | this.title = "æ·»å è´¹ç¨ç³è¯·"; |
| | | this.dialogType = "edit"; |
| | | } else { |
| | | const h = this.$createElement; |
| | | this.$message({ |
| | | message: h("p", null, [h("span", null, "请å
éæ©å·¦æ¹æç®æ¡ä¾ ")]) |
| | | }); |
| | | } |
| | | /** æºå¸¦å·²éæ¡ä¾è·³è½¬å°ç³è¯·åå¡«å页 */ |
| | | goApplyAdd() { |
| | | this.$router.push({ |
| | | path: "/finance/applyDetail/", |
| | | query: { |
| | | id: 0, |
| | | businessType: "3", |
| | | operationType: "add", |
| | | curCase: this.curCase, |
| | | } |
| | | }); |
| | | }, |
| | | /** ä¿®æ¹æé®æä½ */ |
| | | handleUpdate(row) { |
| | |
| | | //éä»¶å¤ç |
| | | this.fileList = this.form.annexbankcard |
| | | ? this.form.annexbankcard |
| | | .split(",") |
| | | .map(item => ({ url: item, name: item })) |
| | | .split(",") |
| | | .map(item => ({ url: item, name: item })) |
| | | : []; |
| | | |
| | | getownFundDetail(id).then(async res => { |
| | |
| | | //éä»¶å¤ç |
| | | this.fileList = this.form.annexbankcard |
| | | ? this.form.annexbankcard |
| | | .split(",") |
| | | .map(item => ({ url: item, name: item })) |
| | | .split(",") |
| | | .map(item => ({ url: item, name: item })) |
| | | : []; |
| | | |
| | | listFundflow(listFundflowparams).then(res => { |
| | |
| | | const ids = row.id || this.ids; |
| | | this.$modal |
| | | .confirm("æ¯å¦ç¡®è®¤å é¤è¯¥è®°å½ï¼") |
| | | .then(function() { |
| | | .then(function () { |
| | | return delFund(ids); |
| | | }) |
| | | .then(() => { |
| | |
| | | this.getfundList(); |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | }) |
| | | .catch(() => {}); |
| | | .catch(() => { }); |
| | | }, |
| | | |
| | | /** 䏿¥æé®æä½ */ |
| | |
| | | }); |
| | | }, |
| | | |
| | | //ç¹å»æç®æ¡ä¾åè¡¨è§¦åæ¹æ³ |
| | | //ç¹å»æç®æ¡ä¾åè¡¨è§¦åæ¹æ³ï¼æ¡ä¾å表已移å
¥ãéæ©æç®æ¡ä¾ãå¯¹è¯æ¡ï¼ |
| | | selectDonotor(row, column, event) { |
| | | this.curCase = row; |
| | | this.getfundList(); |
| | | if (this.casePickerMode === "add") { |
| | | // ä»ãæ°å¢ç³è¯·åãè¿å
¥ï¼é宿¡ä¾ç´æ¥è·³å°ç³è¯·åå¡«å页 |
| | | this.casePickerMode = ""; |
| | | this.caseDialogVisible = false; |
| | | this.goApplyAdd(); |
| | | } |
| | | }, |
| | | |
| | | getfundList() { |
| | | this.loading = true; |
| | | this.reset(); |
| | | // é䏿¡ä¾åææ¡ä¾å±ç¤ºï¼åæ¶æ¸
æå表ç鿡件ï¼é¿å
两个æ¡ä»¶å å 导è´ç©ºå表 |
| | | this.fundQueryParam.donorname = null; |
| | | this.fundQueryParam.recordstatus = null; |
| | | this.fundQueryParam.infoid = this.curCase.id; |
| | | this.fundQueryParam.pageNum = 1; |
| | | this.listFundData(); |
| | | }, |
| | | |
| | | /** |
| | | * æå½å fundQueryParam æ¥è¯¢å³ä¾§æ¥éåå表 |
| | | * infoid 为空 = å½åç»å½äººçå
¨é¨è¯¥ç±»ååæ®ï¼æå¼ = æå®æ¡ä¾ |
| | | */ |
| | | listFundData() { |
| | | this.loading = true; |
| | | listFund(this.fundQueryParam).then(response => { |
| | | this.loading = false; |
| | | this.donateconsolationfundList = response.rows; |
| | | this.fundTotal = response.total; |
| | | }); |
| | | }, |
| | | |
| | | /** æ¥éåçéï¼æç´¢ */ |
| | | handleQueryFund() { |
| | | this.fundQueryParam.pageNum = 1; |
| | | this.listFundData(); |
| | | }, |
| | | |
| | | /** æ¥éåçéï¼éç½®ï¼æ¸
空æ¡ä»¶ä¸å·²éæ¡ä¾ï¼åå°è¯¥ç»å½äººå
¨é¨åæ®ï¼ */ |
| | | resetFundQuery() { |
| | | this.fundQueryParam.donorname = null; |
| | | this.fundQueryParam.recordstatus = null; |
| | | this.getAllfundList(); |
| | | }, |
| | | |
| | | /** |
| | | * æ£ç´¢å
¨é¨ï¼åæ¶å·¦ä¾§æ¡ä¾éæ©ä¸çéæ¡ä»¶ï¼æ¥è¯¢å½åç»å½äººçå
¨é¨å»å¦ææ¬åæ® |
| | | */ |
| | | getAllfundList() { |
| | | this.curCase = {}; |
| | | // åæ¶æ¸
æå·¦ä¾§æ¡ä¾å表çé«äº®é䏿 |
| | | if (this.$refs.caseTable) { |
| | | this.$refs.caseTable.setCurrentRow(); |
| | | } |
| | | this.reset(); |
| | | this.fundQueryParam.infoid = null; |
| | | this.fundQueryParam.donorname = null; |
| | | this.fundQueryParam.recordstatus = null; |
| | | this.fundQueryParam.pageNum = 1; |
| | | this.listFundData(); |
| | | }, |
| | | |
| | | // åæ¶æé® |
| | |
| | | tempData.itemid = tempItemArr[itemIndex].id; |
| | | } |
| | | if (tempData.id > 0) { |
| | | updateFunddetail(tempData).then(response2 => {}); |
| | | updateFunddetail(tempData).then(response2 => { }); |
| | | } else { |
| | | addFunddetail(tempData).then(response2 => {}); |
| | | addFunddetail(tempData).then(response2 => { }); |
| | | } |
| | | } |
| | | }); |
| | |
| | | }, |
| | | |
| | | //æä»¶ä¸ä¼ |
| | | handleUploadError() {}, |
| | | handleUploadError() { }, |
| | | |
| | | handleremove(file) { |
| | | this.fileList.splice(this.fileList.indexOf(file), 1); |
| | |
| | | .button-delete { |
| | | color: rgb(236, 69, 69); |
| | | } |
| | | |
| | | ::v-deep.el-table .error-row { |
| | | background: #fcebeb; |
| | | } |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px"> |
| | | <el-row> |
| | | <el-col :span="5"> |
| | | <el-form-item label="æç®æ¡ä¾" prop="donorname" style="float: left"> |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="80px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="80px"> |
| | | <el-row> |
| | | <el-col :span="5"> |
| | | <el-form-item label="æç®æ¡ä¾" prop="donorname" style="float: left"> |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px"> |
| | | <el-row align="left"> |
| | | <el-col :span="5"> |
| | | <el-form-item label="æç®æ¡ä¾" prop="donorname" style="float: left"> |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px"> |
| | | <el-row align="left"> |
| | | <el-col :span="5"> |
| | | <el-form-item label="æç®æ¡ä¾" prop="donorname" style="float: left"> |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="90px"> |
| | | <el-row align="left"> |
| | | <el-col :span="5"> |
| | | <el-form-item label="é¢å®¡ç¶æ" prop="checkstatus" style="float: left"> |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="ä¸å®¶å§å" prop="beneficiaryname"> |
| | | <el-input v-model="queryParams.beneficiaryname" placeholder="请è¾å
¥ä¸å®¶å§å" clearable size="small" |
| | | @keyup.enter.native="handleQuery" /> |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <!-- <el-form-item label="è´¹ç¨ç¼å·ï¼å·®æ
è´¹å
³è表service_reimbursement ID; è´¹ç¨å
³èè´¹ç¨è¡¨service_fundçID" prop="fundid"> |
| | | <el-input |
| | | v-model="queryParams.fundid" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | <div class="app-container"> |
| | | <el-col :span="24" v-if="showType == 'list'"> |
| | | <el-card shadow="never"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true"> |
| | | <el-form-item label="å§å" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.name" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="æå¡é¡¹ç®ID" prop="itemid"> |
| | | <el-input |
| | | v-model="queryParams.itemid" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | <div class="app-container"> |
| | | <!-- æç´¢æ¡ä»¶ --> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="70px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="70px"> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æç®è
" prop="name"> |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| ¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <!-- æ¥è¯¢æ¡ä»¶ï¼æé®ç´§è·æ¡ä»¶ä¹åï¼ä¸æ¡ä¾è¯ä¼°é¡µé£æ ¼ä¸è´ï¼ --> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | | v-show="showSearch" |
| | | label-width="82px" |
| | | > |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="æç®è
" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.name" |
| | | placeholder="请è¾å
¥æç®è
å§å" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="è¯ä»¶å·ç " prop="idcardno"> |
| | | <el-input |
| | | v-model="queryParams.idcardno" |
| | | placeholder="请è¾å
¥è¯ä»¶å·ç " |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="å¨å®ç±»å«" prop="organno"> |
| | | <el-select |
| | | v-model="queryParams.organno" |
| | | placeholder="è¯·éæ©å¨å®ç±»å«" |
| | | clearable |
| | | size="small" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_Organ" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="è·åç¶æ" prop="organstate"> |
| | | <el-select |
| | | v-model="queryParams.organstate" |
| | | placeholder="è¯·éæ©è·åç¶æ" |
| | | clearable |
| | | size="small" |
| | | style="width: 100%" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_organstate" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="6"> |
| | | <el-form-item label="å¨å®ç¼å·" prop="organnumber"> |
| | | <el-input |
| | | v-model="queryParams.organnumber" |
| | | placeholder="请è¾å
¥å¨å®ç¼å·" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="ç§»æ¤æºæ" prop="transplanthospitalname"> |
| | | <el-input |
| | | v-model="queryParams.transplanthospitalname" |
| | | placeholder="请è¾å
¥ç§»æ¤æºæåç§°" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label="ç§»æ¤äºº" prop="acceptname"> |
| | | <el-input |
| | | v-model="queryParams.acceptname" |
| | | placeholder="请è¾å
¥ç§»æ¤äººå§å" |
| | | clearable |
| | | size="small" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="6"> |
| | | <el-form-item label-width="10px"> |
| | | <el-button type="primary" icon="el-icon-search" size="small" @click="handleQuery">æç´¢</el-button> |
| | | <el-button icon="el-icon-refresh" size="small" @click="resetQuery">éç½®</el-button> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="small" |
| | | :loading="exportLoading" |
| | | @click="handleExport" |
| | | v-hasPermi="['project:register:export']" |
| | | >导åº</el-button> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row class="mb8"> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | </el-form> |
| | | |
| | | <el-table v-loading="loading" :data="registerList" :border="true"> |
| | | <el-table-column label="æç®è
ç¼å·" align="center" prop="donorno" width="200" show-overflow-tooltip /> |
| | | <el-table-column label="å§å" align="center" prop="name" width="90" show-overflow-tooltip /> |
| | | <el-table-column label="æ§å«" align="center" prop="sex" width="70"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.sys_user_sex" :value="scope.row.sex" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="å¹´é¾" align="center" width="80"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="scope.row.age">{{ scope.row.age }}{{ scope.row.ageunit }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="å¨å®ç±»å«" align="center" prop="organname" width="90" show-overflow-tooltip /> |
| | | <el-table-column label="å¨å®ç¼å·" align="center" prop="organnumber" width="130" show-overflow-tooltip /> |
| | | <el-table-column label="è·åç¶æ" align="center" prop="organstate" width="100"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.sys_organstate" :value="scope.row.organstate" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="è·åæ¶é´" align="center" prop="organgettime" width="150"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.organgettime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="è·åæºæ" align="center" prop="gainhospitalname" min-width="180" show-overflow-tooltip /> |
| | | <el-table-column label="ç§»æ¤æºæ" align="center" prop="transplanthospitalname" min-width="180" show-overflow-tooltip /> |
| | | <el-table-column label="ç§»æ¤å»ç" align="center" prop="transplantdoct" width="100" show-overflow-tooltip /> |
| | | <el-table-column label="ç§»æ¤æ¶é´" align="center" prop="transplanttime" width="150"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.transplanttime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="æä½" align="center" width="90" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-view" |
| | | @click="handleDetail(scope.row)" |
| | | v-hasPermi="['project:register:query']" |
| | | >详æ
</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | |
| | | <!-- 详æ
ï¼åªè¯»å±ç¤ºå
¨é¨å段 --> |
| | | <el-dialog title="å¨å®å»å¤è¯¦æ
" :visible.sync="open" width="900px" append-to-body> |
| | | <div v-loading="detailLoading" class="register-detail"> |
| | | <el-divider content-position="left">æç®è
ä¿¡æ¯</el-divider> |
| | | <el-descriptions :column="3" size="small" border> |
| | | <el-descriptions-item label="å§å">{{ detail.name }}</el-descriptions-item> |
| | | <el-descriptions-item label="æ§å«">{{ dictLabel("sys_user_sex", detail.sex) }}</el-descriptions-item> |
| | | <el-descriptions-item label="å¹´é¾"> |
| | | <span v-if="detail.age">{{ detail.age }}{{ detail.ageunit }}</span> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="è¯ä»¶å·ç ">{{ detail.idcardno }}</el-descriptions-item> |
| | | <el-descriptions-item label="åºçæ¥æ">{{ parseTime(detail.birthday, "{y}-{m}-{d}") }}</el-descriptions-item> |
| | | <el-descriptions-item label="èç³»çµè¯">{{ detail.phone }}</el-descriptions-item> |
| | | <el-descriptions-item label="ç°ä½å°å" :span="3">{{ detail.residenceaddress }}</el-descriptions-item> |
| | | <el-descriptions-item label="æç®è
ç¼å·">{{ detail.donorno }}</el-descriptions-item> |
| | | </el-descriptions> |
| | | |
| | | <el-divider content-position="left">å¨å®ä¿¡æ¯</el-divider> |
| | | <el-descriptions :column="3" size="small" border> |
| | | <el-descriptions-item label="å¨å®ç±»å«">{{ detail.organname }}</el-descriptions-item> |
| | | <el-descriptions-item label="å¨å®ç¼å·">{{ detail.organnumber }}</el-descriptions-item> |
| | | <el-descriptions-item label="è·åç¶æ"> |
| | | {{ dictLabel("sys_organstate", detail.organstate) }} |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="è·åæ¶é´">{{ parseTime(detail.organgettime) }}</el-descriptions-item> |
| | | <el-descriptions-item label="è·åå»ç" :span="2">{{ detail.organgetdoct }}</el-descriptions-item> |
| | | <el-descriptions-item label="è·åæºæ" :span="2">{{ detail.gainhospitalname }}</el-descriptions-item> |
| | | <el-descriptions-item label="ç§»æ¤æºæ" :span="2">{{ detail.transplanthospitalname }}</el-descriptions-item> |
| | | <el-descriptions-item label="ç§»æ¤å»ç">{{ detail.transplantdoct }}</el-descriptions-item> |
| | | <el-descriptions-item label="ç§»æ¤æ¶é´" :span="2">{{ parseTime(detail.transplanttime) }}</el-descriptions-item> |
| | | </el-descriptions> |
| | | |
| | | <el-divider content-position="left">ç³è¯·ä¸å®¡æ ¸</el-divider> |
| | | <el-descriptions :column="3" size="small" border> |
| | | <el-descriptions-item label="ç³è¯·äºº">{{ detail.applicantusername }}</el-descriptions-item> |
| | | <el-descriptions-item label="ç³è¯·æ¶é´" :span="2">{{ parseTime(detail.applicanttime) }}</el-descriptions-item> |
| | | <el-descriptions-item label="å®¡æ ¸äºº">{{ detail.checkusername }}</el-descriptions-item> |
| | | <el-descriptions-item label="å®¡æ ¸æ¶é´" :span="2">{{ parseTime(detail.checktime) }}</el-descriptions-item> |
| | | <el-descriptions-item label="å®¡æ ¸æè§" :span="3">{{ detail.checksuggestion }}</el-descriptions-item> |
| | | </el-descriptions> |
| | | |
| | | <el-divider content-position="left">ç§»æ¤äººä¿¡æ¯</el-divider> |
| | | <el-descriptions :column="3" size="small" border> |
| | | <el-descriptions-item label="å§å">{{ detail.acceptname }}</el-descriptions-item> |
| | | <el-descriptions-item label="æ§å«">{{ dictLabel("sys_user_sex", detail.acceptsex) }}</el-descriptions-item> |
| | | <el-descriptions-item label="å¹´é¾"> |
| | | <span v-if="detail.acceptage">{{ detail.acceptage }}{{ detail.acceptageunit }}</span> |
| | | </el-descriptions-item> |
| | | <el-descriptions-item label="è¯ä»¶å·ç ">{{ detail.acceptidcard }}</el-descriptions-item> |
| | | <el-descriptions-item label="èç³»çµè¯" :span="2">{{ detail.acceptphone }}</el-descriptions-item> |
| | | <el-descriptions-item label="ç°ä½å°å" :span="3">{{ detail.acceptresidenceaddress }}</el-descriptions-item> |
| | | </el-descriptions> |
| | | </div> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="open = false">å
³ é</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { listRegister, getRegister, exportRegister } from "@/api/project/register"; |
| | | |
| | | export default { |
| | | name: "Register", |
| | | dicts: ["sys_Organ", "sys_organstate", "sys_user_sex", "sys_AgeUnit"], |
| | | data() { |
| | | return { |
| | | // é®ç½©å± |
| | | loading: true, |
| | | // 详æ
å è½½ |
| | | detailLoading: false, |
| | | // 导åºé®ç½©å± |
| | | exportLoading: false, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | // å¨å®å»å¤å表 |
| | | registerList: [], |
| | | // 详æ
å¼¹çª |
| | | open: false, |
| | | detail: {}, |
| | | // æ¥è¯¢åæ°ï¼åéä¸å端 queryList / Mapper æ¯æçæ¡ä»¶ä¸è´ï¼ |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | name: null, |
| | | idcardno: null, |
| | | organno: null, |
| | | organstate: null, |
| | | organnumber: null, |
| | | transplanthospitalname: null, |
| | | acceptname: null |
| | | } |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | }, |
| | | methods: { |
| | | /** æ¥è¯¢å¨å®å»å¤å表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listRegister(this.queryParams).then(response => { |
| | | this.registerList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | | this.resetForm("queryForm"); |
| | | this.handleQuery(); |
| | | }, |
| | | /** 详æ
æé®æä½ */ |
| | | handleDetail(row) { |
| | | this.detail = {}; |
| | | this.open = true; |
| | | this.detailLoading = true; |
| | | getRegister(row.id).then(response => { |
| | | this.detail = response.data || {}; |
| | | this.detailLoading = false; |
| | | }).catch(() => { |
| | | this.detailLoading = false; |
| | | }); |
| | | }, |
| | | /** åå
¸ç¿»è¯ï¼æ¨¡æ¿éç¨ï¼é¿å
å¤ä¸ª dict-tag åµå¥ï¼ */ |
| | | dictLabel(type, value) { |
| | | const list = this.dict.type[type] || []; |
| | | const item = list.find(d => String(d.value) === String(value)); |
| | | return item ? item.label : value; |
| | | }, |
| | | /** å¯¼åºæé®æä½ */ |
| | | handleExport() { |
| | | this.$modal |
| | | .confirm("æ¯å¦ç¡®è®¤å¯¼åºå¨å®å»å¤æ°æ®ï¼") |
| | | .then(() => { |
| | | this.exportLoading = true; |
| | | return exportRegister(this.queryParams); |
| | | }) |
| | | .then(response => { |
| | | this.$download.name(response.msg); |
| | | this.exportLoading = false; |
| | | }) |
| | | .catch(() => { |
| | | this.exportLoading = false; |
| | | }); |
| | | } |
| | | } |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .register-detail >>> .el-divider--horizontal { |
| | | margin: 12px 0 14px; |
| | | } |
| | | .register-detail >>> .el-divider__text { |
| | | color: var(--opo-primary, #0e768f); |
| | | font-size: var(--opo-font-size-sm, 14px); |
| | | } |
| | | .register-detail >>> .el-descriptions-item__label { |
| | | color: var(--opo-text-secondary, #6b7280); |
| | | width: 90px; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="å建è
" prop="createBy"> |
| | | <el-input |
| | | v-model="queryParams.createBy" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="å建人" prop="createBy"> |
| | | <el-input |
| | | v-model="queryParams.createBy" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="èµéç³è¯·ä¸»è¡¨ID" prop="rbid"> |
| | | <el-input |
| | | v-model="queryParams.rbid" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | this.queryParams.pabegtime = this.selecttime[0]; |
| | | this.queryParams.paendtime = this.selecttime[1]; |
| | | // if (this.queryParams.paendtime == this.queryParams.pabegtime) { |
| | | let num = Number(this.queryParams.paendtime.slice(5, 7)); |
| | | if (num < 9) { |
| | | let mon = Number(this.queryParams.paendtime.slice(6, 7)); |
| | | this.queryParams.paendtime = |
| | | this.queryParams.paendtime.slice(0, 5) + |
| | | "0" + |
| | | (mon + 1) + |
| | | "-" + |
| | | "01" + |
| | | " " + |
| | | "00" + |
| | | ":" + |
| | | "00" + |
| | | ":" + |
| | | "00"; |
| | | } |
| | | // this.queryParams.paendtime=this.queryParams.paendtime.slice(0,5)å¹´ |
| | | else if (num >= 10) { |
| | | this.queryParams.paendtime = |
| | | this.queryParams.paendtime.slice(0, 5) + |
| | | (num + 1) + |
| | | "-" + |
| | | "01" + |
| | | " " + |
| | | "00" + |
| | | ":" + |
| | | "00" + |
| | | ":" + |
| | | "00"; |
| | | } else { |
| | | this.queryParams.paendtime = |
| | | this.queryParams.paendtime.slice(0, 5) + |
| | | "10" + |
| | | "-" + |
| | | "01" + |
| | | " " + |
| | | "00" + |
| | | ":" + |
| | | "00" + |
| | | ":" + |
| | | "00"; |
| | | } |
| | | // ç»ææ¶é´å"æéç»ææç次æ 1 å·"ï¼ä»¥å
嫿´ä¸ªç»ææã |
| | | // åå®ç°ææä»½ +1 åç´æ¥æ¼å符串ï¼12 æä¼å¾å° 13 æï¼2026-13-01ï¼ï¼ |
| | | // MySQL æ¥ Incorrect datetime valueï¼åå¨è¿ç¨ç´æ¥ 500ã |
| | | this.queryParams.paendtime = this.$moment(this.queryParams.paendtime) |
| | | .startOf("month") |
| | | .add(1, "month") |
| | | .format("YYYY-MM") |
| | | .concat("-01 00:00:00"); |
| | | this.queryParams.pabegtime = |
| | | this.queryParams.pabegtime + " " + "00" + ":" + "00" + ":" + "00"; |
| | | // } |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | this.queryParams.pabegtime = this.selecttime[0]; |
| | | this.queryParams.paendtime = this.selecttime[1]; |
| | | // if (this.queryParams.paendtime == this.queryParams.pabegtime) { |
| | | let num = Number(this.queryParams.paendtime.slice(5, 7)); |
| | | if (num < 9) { |
| | | let mon = Number(this.queryParams.paendtime.slice(6, 7)); |
| | | this.queryParams.paendtime = |
| | | this.queryParams.paendtime.slice(0, 5) + |
| | | "0" + |
| | | (mon + 1) + |
| | | "-" + |
| | | "01" + |
| | | " " + |
| | | "00" + |
| | | ":" + |
| | | "00" + |
| | | ":" + |
| | | "00"; |
| | | } |
| | | // this.queryParams.paendtime=this.queryParams.paendtime.slice(0,5)å¹´ |
| | | else if (num >= 10) { |
| | | this.queryParams.paendtime = |
| | | this.queryParams.paendtime.slice(0, 5) + |
| | | (num + 1) + |
| | | "-" + |
| | | "01" + |
| | | " " + |
| | | "00" + |
| | | ":" + |
| | | "00" + |
| | | ":" + |
| | | "00"; |
| | | } else { |
| | | this.queryParams.paendtime = |
| | | this.queryParams.paendtime.slice(0, 5) + |
| | | "10" + |
| | | "-" + |
| | | "01" + |
| | | " " + |
| | | "00" + |
| | | ":" + |
| | | "00" + |
| | | ":" + |
| | | "00"; |
| | | } |
| | | // ç»ææ¶é´å"æéç»ææç次æ 1 å·"ï¼ä»¥å
嫿´ä¸ªç»ææã |
| | | // åå®ç°ææä»½ +1 åç´æ¥æ¼å符串ï¼12 æä¼å¾å° 13 æï¼2026-13-01ï¼ï¼ |
| | | // MySQL æ¥ Incorrect datetime valueï¼åå¨è¿ç¨ç´æ¥ 500ã |
| | | this.queryParams.paendtime = this.$moment(this.queryParams.paendtime) |
| | | .startOf("month") |
| | | .add(1, "month") |
| | | .format("YYYY-MM") |
| | | .concat("-01 00:00:00"); |
| | | this.queryParams.pabegtime = |
| | | this.queryParams.pabegtime + " " + "00" + ":" + "00" + ":" + "00"; |
| | | // } |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | this.queryParams.pabegtime = this.selecttime[0]; |
| | | this.queryParams.paendtime = this.selecttime[1]; |
| | | // if (this.queryParams.paendtime == this.queryParams.pabegtime) { |
| | | let num = Number(this.queryParams.paendtime.slice(5, 7)); |
| | | if (num < 9) { |
| | | let mon = Number(this.queryParams.paendtime.slice(6, 7)); |
| | | this.queryParams.paendtime = |
| | | this.queryParams.paendtime.slice(0, 5) + |
| | | "0" + |
| | | (mon + 1) + |
| | | "-" + |
| | | "01" + |
| | | " " + |
| | | "00" + |
| | | ":" + |
| | | "00" + |
| | | ":" + |
| | | "00"; |
| | | } |
| | | // this.queryParams.paendtime=this.queryParams.paendtime.slice(0,5)å¹´ |
| | | else if (num >= 10) { |
| | | this.queryParams.paendtime = |
| | | this.queryParams.paendtime.slice(0, 5) + |
| | | (num + 1) + |
| | | "-" + |
| | | "01" + |
| | | " " + |
| | | "00" + |
| | | ":" + |
| | | "00" + |
| | | ":" + |
| | | "00"; |
| | | } else { |
| | | this.queryParams.paendtime = |
| | | this.queryParams.paendtime.slice(0, 5) + |
| | | "10" + |
| | | "-" + |
| | | "01" + |
| | | " " + |
| | | "00" + |
| | | ":" + |
| | | "00" + |
| | | ":" + |
| | | "00"; |
| | | } |
| | | // ç»ææ¶é´å"æéç»ææç次æ 1 å·"ï¼ä»¥å
嫿´ä¸ªç»ææã |
| | | // åå®ç°ææä»½ +1 åç´æ¥æ¼å符串ï¼12 æä¼å¾å° 13 æï¼2026-13-01ï¼ï¼ |
| | | // MySQL æ¥ Incorrect datetime valueï¼åå¨è¿ç¨ç´æ¥ 500ã |
| | | this.queryParams.paendtime = this.$moment(this.queryParams.paendtime) |
| | | .startOf("month") |
| | | .add(1, "month") |
| | | .format("YYYY-MM") |
| | | .concat("-01 00:00:00"); |
| | | this.queryParams.pabegtime = |
| | | this.queryParams.pabegtime + " " + "00" + ":" + "00" + ":" + "00"; |
| | | // } |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | this.queryParams.pabegtime = this.selecttime[0]; |
| | | this.queryParams.paendtime = this.selecttime[1]; |
| | | // if (this.queryParams.paendtime == this.queryParams.pabegtime) { |
| | | let num = Number(this.queryParams.paendtime.slice(5, 7)); |
| | | if (num < 9) { |
| | | let mon = Number(this.queryParams.paendtime.slice(6, 7)); |
| | | this.queryParams.paendtime = |
| | | this.queryParams.paendtime.slice(0, 5) + |
| | | "0" + |
| | | (mon + 1) + |
| | | "-" + |
| | | "01" + |
| | | " " + |
| | | "00" + |
| | | ":" + |
| | | "00" + |
| | | ":" + |
| | | "00"; |
| | | } |
| | | // this.queryParams.paendtime=this.queryParams.paendtime.slice(0,5)å¹´ |
| | | else if (num >= 10) { |
| | | this.queryParams.paendtime = |
| | | this.queryParams.paendtime.slice(0, 5) + |
| | | (num + 1) + |
| | | "-" + |
| | | "01" + |
| | | " " + |
| | | "00" + |
| | | ":" + |
| | | "00" + |
| | | ":" + |
| | | "00"; |
| | | } else { |
| | | this.queryParams.paendtime = |
| | | this.queryParams.paendtime.slice(0, 5) + |
| | | "10" + |
| | | "-" + |
| | | "01" + |
| | | " " + |
| | | "00" + |
| | | ":" + |
| | | "00" + |
| | | ":" + |
| | | "00"; |
| | | } |
| | | // ç»ææ¶é´å"æéç»ææç次æ 1 å·"ï¼ä»¥å
嫿´ä¸ªç»ææã |
| | | // åå®ç°ææä»½ +1 åç´æ¥æ¼å符串ï¼12 æä¼å¾å° 13 æï¼2026-13-01ï¼ï¼ |
| | | // MySQL æ¥ Incorrect datetime valueï¼åå¨è¿ç¨ç´æ¥ 500ã |
| | | this.queryParams.paendtime = this.$moment(this.queryParams.paendtime) |
| | | .startOf("month") |
| | | .add(1, "month") |
| | | .format("YYYY-MM") |
| | | .concat("-01 00:00:00"); |
| | | this.queryParams.pabegtime = |
| | | this.queryParams.pabegtime + " " + "00" + ":" + "00" + ":" + "00"; |
| | | // } |
| | |
| | | <el-row :gutter="20"> |
| | | <!--ç¨æ·æ°æ®--> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="patientqueryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-row> |
| | | <!-- |
| | | <el-col :span="6"> |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="80px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="80px"> |
| | | <el-row> |
| | | <el-col :span="5"> |
| | | <el-form-item label="æç®æ¡ä¾" prop="name"> |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="120px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="120px"> |
| | | <el-form-item label="å»çæºæ" prop="name"> |
| | | <el-input v-model="queryParams.name" placeholder="请è¾å
¥å»çæºæ" clearable size="small" |
| | | @keyup.enter.native="handleQuery" /> |
| | |
| | | <el-row :gutter="20"> |
| | | <!--ç¨æ·æ°æ®--> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="patientqueryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="ç级åç§°" prop="className"> |
| | | <el-input |
| | | v-model="queryParams.className" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="åæ°åç§°" prop="configName"> |
| | | <el-input |
| | | v-model="queryParams.configName" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form |
| | | class="opo-query-form" |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | :inline="true" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch"> |
| | | <el-form-item label="é¨é¨åç§°" prop="deptName"> |
| | | <el-input |
| | | v-model="queryParams.deptName" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="åå
¸åç§°" prop="dictType"> |
| | | <el-select v-model="queryParams.dictType" size="small"> |
| | | <el-option |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="åå
¸åç§°" prop="dictName"> |
| | | <el-input |
| | | v-model="queryParams.dictName" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="年级åç§°" prop="gradeName"> |
| | | <el-input |
| | | v-model="queryParams.gradeName" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="å§å" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.name" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch"> |
| | | <el-form-item label="èååç§°" prop="menuName"> |
| | | <el-input |
| | | v-model="queryParams.menuName" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="å
¬åæ é¢" prop="noticeTitle"> |
| | | <el-input |
| | | v-model="queryParams.noticeTitle" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="å²ä½ç¼ç " prop="postCode"> |
| | | <el-input |
| | | v-model="queryParams.postCode" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" v-show="showSearch" :inline="true"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" v-show="showSearch" :inline="true"> |
| | | <el-form-item label="ç¨æ·åç§°" prop="userName"> |
| | | <el-input |
| | | v-model="queryParams.userName" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" v-show="showSearch" :inline="true"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" v-show="showSearch" :inline="true"> |
| | | <el-form-item label="è§è²åç§°" prop="roleName"> |
| | | <el-input |
| | | v-model="queryParams.roleName" |
| | |
| | | <template> |
| | | <!-- ææç¨æ· --> |
| | | <el-dialog title="éæ©ç¨æ·" :visible.sync="visible" width="800px" top="5vh" append-to-body> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true"> |
| | | <el-form-item label="ç¨æ·åç§°" prop="userName"> |
| | | <el-input |
| | | v-model="queryParams.userName" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="å¦çåç§°" prop="studentName"> |
| | | <el-input |
| | | v-model="queryParams.studentName" |
| | |
| | | </el-col> |
| | | <!--ç¨æ·æ°æ®--> |
| | | <el-col :span="20" :xs="24"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="ç¨æ·åç§°" prop="userName"> |
| | | <el-input |
| | | v-model="queryParams.userName" |
| | |
| | | <template> |
| | | <!-- 导å
¥è¡¨ --> |
| | | <el-dialog title="导å
¥è¡¨" :visible.sync="visible" width="800px" top="5vh" append-to-body> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true"> |
| | | <el-form-item label="表åç§°" prop="tableName"> |
| | | <el-input |
| | | v-model="queryParams.tableName" |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | class="opo-query-form" :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="表åç§°" prop="tableName"> |
| | | <el-input |
| | | v-model="queryParams.tableName" |