Merge remote-tracking branch 'origin/master' into yxh01
已删除7个文件
已添加33个文件
已重命名425个文件
已复制4个文件
ÎļþÃû´Ó ruoyi-ui/package.json ÐÞ¸Ä |
| | |
| | | "axios": "0.24.0", |
| | | "clipboard": "2.0.8", |
| | | "core-js": "3.25.3", |
| | | "echarts": "5.4.0", |
| | | "cos-js-sdk-v5": "^1.4.18", |
| | | "dayjs": "^1.11.7", |
| | | "echarts": "^5.4.2", |
| | | "element-ui": "2.15.12", |
| | | "file-saver": "2.0.5", |
| | | "file-saver": "^2.0.5", |
| | | "fuse.js": "6.4.3", |
| | | "highlight.js": "9.18.5", |
| | | "js-beautify": "1.13.0", |
| | |
| | | "vue-meta": "2.4.0", |
| | | "vue-router": "3.4.9", |
| | | "vuedraggable": "2.24.3", |
| | | "vuex": "3.6.0" |
| | | "vuex": "3.6.0", |
| | | "xlsx": "^0.18.5" |
| | | }, |
| | | "devDependencies": { |
| | | "@vue/cli-plugin-babel": "4.4.6", |
| | |
| | | "sass": "1.32.13", |
| | | "sass-loader": "10.1.1", |
| | | "script-ext-html-webpack-plugin": "2.1.5", |
| | | "script-loader": "^0.7.2", |
| | | "svg-sprite-loader": "5.1.1", |
| | | "vue-template-compiler": "2.6.12" |
| | | }, |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/utils/request' |
| | | import { parseStrEmpty } from "@/utils/ruoyi";//å¤çå符串,und,null转æ¢ä¸º''; |
| | | |
| | | // ä¿®æ¹å®£æåç±» |
| | | export function amendtag(data) { |
| | | return request({ |
| | | url: '/smartor/hecategory', |
| | | method: 'put', |
| | | data: data |
| | | }) |
| | | }; |
| | | // æ°å¢å®£æåç±» |
| | | export function addapitag(data) { |
| | | return request({ |
| | | url: '/smartor/hecategory', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | }; |
| | | |
| | | /** |
| | | * |
| | | * @param {æ ç¾id} userId |
| | | * è·å宣æè¯¦æ
|
| | | * @returns |
| | | */ |
| | | export function detailstag(userId) { |
| | | return request({ |
| | | url: '/smartor/hecategory/'+ userId, |
| | | method: 'get', |
| | | }) |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * |
| | | * @param {æ ç¾id} userId |
| | | * å 餿 ç¾ |
| | | * @returns |
| | | */ |
| | | export function deletetag(userId) { |
| | | return request({ |
| | | url: '/smartor/hecategory/' + userId, |
| | | method: 'delete', |
| | | }) |
| | | }; |
| | | // å¯¼åºæ ç¾å表 |
| | | export function exporttag(data) { |
| | | return request({ |
| | | url: '/smartor/hecategory/export', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | }; |
| | | // æ¥è¯¢æ ç¾å表 |
| | | export function listtag(query) { |
| | | return request({ |
| | | url: '/smartor/hecategory/list', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/utils/request' |
| | | import { parseStrEmpty } from "@/utils/ruoyi";//å¤çå符串,und,null转æ¢ä¸º''; |
| | | |
| | | // æ¥è¯¢é¢åºå表 |
| | | export function listpatient(query) { |
| | | return request({ |
| | | url: '/smartor/patarchive/list', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/utils/request' |
| | | import { parseStrEmpty } from "@/utils/ruoyi";//å¤çå符串,und,null转æ¢ä¸º''; |
| | | |
| | | // æ¥è¯¢é®å·å表 |
| | | export function listpatient(query) { |
| | | return request({ |
| | | url: '/smartor/patarchive/list', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/utils/request' |
| | | import { parseStrEmpty } from "@/utils/ruoyi";//å¤çå符串,und,null转æ¢ä¸º''; |
| | | |
| | | // æ¥è¯¢æ£è
å表 |
| | | export function listpatient(query) { |
| | | return request({ |
| | | url: '/smartor/patarchive/list', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | }; |
| | | // ç¨æ·ä¿¡æ¯æ¥è¯¢æ£è
å表 |
| | | export function messagelistpatient(data) { |
| | | return request({ |
| | | url: '/smartor/patarchive/patInfoByContion', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | }; |
| | | // æ ç¾æ¥è¯¢æ£è
å表 |
| | | export function taglistpatient(data) { |
| | | return request({ |
| | | url: '/smartor/patarchive/patTagByContion', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | }; |
| | | // ä¿®æ¹æ£è
æ¡£æ¡ |
| | | export function alterpatient(data) { |
| | | return request({ |
| | | url: '/smartor/patarchive', |
| | | method: 'put', |
| | | data: data |
| | | }) |
| | | }; |
| | | // æ°å¢æ£è
|
| | | export function addpatient(data) { |
| | | return request({ |
| | | url: '/smartor/patarchive', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | }; |
| | | // æ£è
详æ
|
| | | export function particularpatient(userId) { |
| | | return request({ |
| | | url: '/smartor/patarchive/' + userId, |
| | | method: 'get', |
| | | }) |
| | | }; |
| | | // å 餿£è
å表 |
| | | export function deletepatient(userId) { |
| | | return request({ |
| | | url: '/smartor/patarchive/' + userId, |
| | | method: 'delete', |
| | | }) |
| | | }; |
| | | |
| | | // å¯¼åºæ£è
éè¯¯ä¿¡æ¯ |
| | | export function Exporterrorpatient(userId) { |
| | | return request({ |
| | | url: '/smartor/patarchive/patTagByContion/'+userId, |
| | | method: 'get', |
| | | }) |
| | | }; |
| | | // 导å
¥æ£è
æä»¶å¤ç |
| | | export function toleadpatient(userId) { |
| | | return request({ |
| | | url: '/smartor/patarchive/patTagByContion/'+userId, |
| | | method: 'get', |
| | | }) |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/utils/request' |
| | | import { parseStrEmpty } from "@/utils/ruoyi";//å¤çå符串,und,null转æ¢ä¸º''; |
| | | |
| | | // ä¿®æ¹æ ç¾ |
| | | export function amendtag(data) { |
| | | return request({ |
| | | url: '/base/tag', |
| | | method: 'put', |
| | | data: data |
| | | }) |
| | | }; |
| | | // æ°å¢æ ç¾ |
| | | export function addapitag(data) { |
| | | return request({ |
| | | url: '/base/tag', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | }; |
| | | |
| | | /** |
| | | * |
| | | * @param {æ ç¾id} userId |
| | | * è·åæ ç¾è¯¦æ
|
| | | * @returns |
| | | */ |
| | | export function detailstag(userId) { |
| | | return request({ |
| | | url: '/base/tag/'+ userId, |
| | | method: 'get', |
| | | }) |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * |
| | | * @param {æ ç¾id} userId |
| | | * å 餿 ç¾ |
| | | * @returns |
| | | */ |
| | | export function deletetag(userId) { |
| | | return request({ |
| | | url: '/base/tag/' + userId, |
| | | method: 'delete', |
| | | }) |
| | | }; |
| | | // å¯¼åºæ ç¾å表 |
| | | export function exporttag(data) { |
| | | return request({ |
| | | url: '/base/tag/export', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | }; |
| | | // æ¥è¯¢æ ç¾å表 |
| | | export function listtag(query) { |
| | | return request({ |
| | | url: '/base/tag/list', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import request from '@/utils/request' |
| | | |
| | | // æ¥è¯¢æ ç¾å表 |
| | | export function listTag(query) { |
| | | return request({ |
| | | url: '/system/tag/list', |
| | | method: 'get', |
| | | params: query |
| | | }) |
| | | } |
| | | |
| | | // æ¥è¯¢æ ç¾è¯¦ç» |
| | | export function getTag(tagid) { |
| | | return request({ |
| | | url: '/system/tag/' + tagid, |
| | | method: 'get' |
| | | }) |
| | | } |
| | | |
| | | // æ°å¢æ ç¾ |
| | | export function addTag(data) { |
| | | return request({ |
| | | url: '/system/tag', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // ä¿®æ¹æ ç¾ |
| | | export function updateTag(data) { |
| | | return request({ |
| | | url: '/system/tag', |
| | | method: 'put', |
| | | data: data |
| | | }) |
| | | } |
| | | |
| | | // å 餿 ç¾ |
| | | export function delTag(tagid) { |
| | | return request({ |
| | | url: '/system/tag/' + tagid, |
| | | method: 'delete' |
| | | }) |
| | | } |
ÎļþÃû´Ó ruoyi-ui/src/api/system/user.js ÐÞ¸Ä |
| | |
| | | import request from '@/utils/request' |
| | | import { parseStrEmpty } from "@/utils/ruoyi"; |
| | | import { parseStrEmpty } from "@/utils/ruoyi";//å¤çå符串 |
| | | |
| | | // æ¥è¯¢ç¨æ·å表 |
| | | export function listUser(query) { |
ÎļþÃû´Ó ruoyi-ui/src/assets/styles/element-variables.scss ÐÞ¸Ä |
| | |
| | | **/ |
| | | |
| | | /* theme color */ |
| | | $--color-primary: #1890ff; |
| | | $--color-primary: #3a80c2; |
| | | $--color-success: #13ce66; |
| | | $--color-warning: #ffba00; |
| | | $--color-danger: #ff4949; |
ÎļþÃû´Ó ruoyi-ui/src/assets/styles/sidebar.scss ÐÞ¸Ä |
| | |
| | | -webkit-transition: width .28s; |
| | | transition: width 0.28s; |
| | | width: $base-sidebar-width !important; |
| | | background-color: $base-menu-background; |
| | | background: -webkit-linear-gradient(bottom, #3d6df8, #5b8cff); |
| | | |
| | | height: 100%; |
| | | position: fixed; |
| | | font-size: 0px; |
| | |
| | | } |
| | | |
| | | .scrollbar-wrapper { |
| | | overflow-x: hidden !important; |
| | | background: url('~@/assets/common/leftnavBg.png') no-repeat 0 100%; |
| | | } |
| | | |
| | | .el-scrollbar__bar.is-vertical { |
| | |
| | | |
| | | &.has-logo { |
| | | .el-scrollbar { |
| | | height: calc(100% - 50px); |
| | | height: calc(100% - 28px); |
| | | } |
| | | } |
| | | |
ÎļþÃû´Ó ruoyi-ui/src/assets/styles/variables.scss ÐÞ¸Ä |
| | |
| | | $light-blue:#3A71A8; |
| | | $red:#C03639; |
| | | $pink: #E65D6E; |
| | | $green: #30B08F; |
| | | $green: #5aecd9; |
| | | $tiffany: #4AB7BD; |
| | | $yellow:#FEC171; |
| | | $panGreen: #30B08F; |
| | | $menuActiveText:#4fa8db; |
| | | |
| | | |
| | | // é»è®¤èå主é¢é£æ ¼ |
| | | $base-menu-color:#bfcbd9; |
| | | $base-menu-color:#f7f8f8; |
| | | $base-menu-color-active:#f4f4f5; |
| | | $base-menu-background:#304156; |
| | | $base-menu-background:transparent; |
| | | $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; |
| | | |
| | | $base-sub-menu-background:#1f2d3d; |
| | | $base-sub-menu-background:#81bcec; |
| | | $base-sub-menu-hover:#001528; |
| | | |
| | | // èªå®ä¹æè²èå飿 ¼ |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <!-- é¡¶é¨è·¯å¾ --> |
| | | <template> |
| | | <el-breadcrumb class="app-breadcrumb" separator="/"> |
| | | <transition-group name="breadcrumb"> |
| | | <el-breadcrumb-item v-for="(item, index) in levelList" :key="item.path"> |
| | | <span |
| | | v-if="item.redirect === 'noRedirect' || index == levelList.length - 1" |
| | | class="no-redirect" |
| | | >{{ item.meta.title }}</span |
| | | > |
| | | <a v-else @click.prevent="handleLink(item)">{{ item.meta.title }}</a> |
| | | </el-breadcrumb-item> |
| | | </transition-group> |
| | | </el-breadcrumb> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | levelList: null, |
| | | }; |
| | | }, |
| | | watch: { |
| | | $route(route) { |
| | | // if you go to the redirect page, do not update the breadcrumbs |
| | | if (route.path.startsWith("/redirect/")) { |
| | | return; |
| | | } |
| | | this.getBreadcrumb(); |
| | | }, |
| | | }, |
| | | created() { |
| | | this.getBreadcrumb(); |
| | | }, |
| | | methods: { |
| | | getBreadcrumb() { |
| | | // only show routes with meta.title |
| | | let matched = this.$route.matched.filter( |
| | | (item) => item.meta && item.meta.title |
| | | ); |
| | | const first = matched[0]; |
| | | |
| | | if (!this.isDashboard(first)) { |
| | | matched = [{ path: "/index", meta: { title: "é¦é¡µ" } }].concat(matched); |
| | | } |
| | | |
| | | this.levelList = matched.filter( |
| | | (item) => item.meta && item.meta.title && item.meta.breadcrumb !== false |
| | | ); |
| | | }, |
| | | isDashboard(route) { |
| | | const name = route && route.name; |
| | | if (!name) { |
| | | return false; |
| | | } |
| | | return name.trim() === "Index"; |
| | | }, |
| | | handleLink(item) { |
| | | const { redirect, path } = item; |
| | | if (redirect) { |
| | | this.$router.push(redirect); |
| | | return; |
| | | } |
| | | this.$router.push(path); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .app-breadcrumb.el-breadcrumb { |
| | | display: inline-block; |
| | | font-size: 14px; |
| | | line-height: 50px; |
| | | margin-left: 8px; |
| | | |
| | | .no-redirect { |
| | | color: #97a8be; |
| | | cursor: text; |
| | | } |
| | | } |
| | | </style> |
ÎļþÃû´Ó ruoyi-ui/src/components/DictTag/index.vue ÐÞ¸Ä |
| | |
| | | }, |
| | | computed: { |
| | | values() { |
| | | if (this.value !== null && typeof this.value !== 'undefined') { |
| | | if (this.value !== null && typeof this.value !== "undefined") { |
| | | return Array.isArray(this.value) ? this.value : [String(this.value)]; |
| | | } else { |
| | | return []; |
| | |
| | | .el-tag + .el-tag { |
| | | margin-left: 10px; |
| | | } |
| | | </style> |
| | | </style> |
ÎļþÃû´Ó ruoyi-ui/src/components/Editor/index.vue ÐÞ¸Ä |
| | |
| | | <!-- ä¸ä¼ å¾çs --> |
| | | <template> |
| | | <div> |
| | | <el-upload |
ÎļþÃû´Ó ruoyi-ui/src/components/FileUpload/index.vue ÐÞ¸Ä |
| | |
| | | <!-- ä¸ä¼ æä»¶ --> |
| | | <template> |
| | | <div class="upload-file"> |
| | | <el-upload |
| | |
| | | <!-- ä¸ä¼ æç¤º --> |
| | | <div class="el-upload__tip" slot="tip" v-if="showTip"> |
| | | 请ä¸ä¼ |
| | | <template v-if="fileSize"> 大å°ä¸è¶
è¿ <b style="color: #f56c6c">{{ fileSize }}MB</b> </template> |
| | | <template v-if="fileType"> æ ¼å¼ä¸º <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template> |
| | | <template v-if="fileSize"> |
| | | 大å°ä¸è¶
è¿ <b style="color: #f56c6c">{{ fileSize }}MB</b> |
| | | </template> |
| | | <template v-if="fileType"> |
| | | æ ¼å¼ä¸º <b style="color: #f56c6c">{{ fileType.join("/") }}</b> |
| | | </template> |
| | | çæä»¶ |
| | | </div> |
| | | </el-upload> |
| | | |
| | | <!-- æä»¶å表 --> |
| | | <transition-group class="upload-file-list el-upload-list el-upload-list--text" name="el-fade-in-linear" tag="ul"> |
| | | <li :key="file.url" class="el-upload-list__item ele-upload-list__item-content" v-for="(file, index) in fileList"> |
| | | <el-link :href="`${baseUrl}${file.url}`" :underline="false" target="_blank"> |
| | | <transition-group |
| | | class="upload-file-list el-upload-list el-upload-list--text" |
| | | name="el-fade-in-linear" |
| | | tag="ul" |
| | | > |
| | | <li |
| | | :key="file.url" |
| | | class="el-upload-list__item ele-upload-list__item-content" |
| | | v-for="(file, index) in fileList" |
| | | > |
| | | <el-link |
| | | :href="`${baseUrl}${file.url}`" |
| | | :underline="false" |
| | | target="_blank" |
| | | > |
| | | <span class="el-icon-document"> {{ getFileName(file.name) }} </span> |
| | | </el-link> |
| | | <div class="ele-upload-list__item-content-action"> |
| | | <el-link :underline="false" @click="handleDelete(index)" type="danger">å é¤</el-link> |
| | | <el-link :underline="false" @click="handleDelete(index)" type="danger" |
| | | >å é¤</el-link |
| | | > |
| | | </div> |
| | | </li> |
| | | </transition-group> |
| | |
| | | // æ¯å¦æ¾ç¤ºæç¤º |
| | | isShowTip: { |
| | | type: Boolean, |
| | | default: true |
| | | } |
| | | default: true, |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | if (val) { |
| | | let temp = 1; |
| | | // é¦å
å°å¼è½¬ä¸ºæ°ç» |
| | | const list = Array.isArray(val) ? val : this.value.split(','); |
| | | const list = Array.isArray(val) ? val : this.value.split(","); |
| | | // ç¶åå°æ°ç»è½¬ä¸ºå¯¹è±¡æ°ç» |
| | | this.fileList = list.map(item => { |
| | | this.fileList = list.map((item) => { |
| | | if (typeof item === "string") { |
| | | item = { name: item, url: item }; |
| | | } |
| | |
| | | } |
| | | }, |
| | | deep: true, |
| | | immediate: true |
| | | } |
| | | immediate: true, |
| | | }, |
| | | }, |
| | | computed: { |
| | | // æ¯å¦æ¾ç¤ºæç¤º |
| | |
| | | handleBeforeUpload(file) { |
| | | // æ ¡æ£æä»¶ç±»å |
| | | if (this.fileType) { |
| | | const fileName = file.name.split('.'); |
| | | const fileName = file.name.split("."); |
| | | const fileExt = fileName[fileName.length - 1]; |
| | | const isTypeOk = this.fileType.indexOf(fileExt) >= 0; |
| | | if (!isTypeOk) { |
| | | this.$modal.msgError(`æä»¶æ ¼å¼ä¸æ£ç¡®, 请ä¸ä¼ ${this.fileType.join("/")}æ ¼å¼æä»¶!`); |
| | | this.$modal.msgError( |
| | | `æä»¶æ ¼å¼ä¸æ£ç¡®, 请ä¸ä¼ ${this.fileType.join("/")}æ ¼å¼æä»¶!` |
| | | ); |
| | | return false; |
| | | } |
| | | } |
| | |
| | | // ä¸ä¼ 失败 |
| | | handleUploadError(err) { |
| | | this.$modal.msgError("ä¸ä¼ æä»¶å¤±è´¥ï¼è¯·éè¯"); |
| | | this.$modal.closeLoading() |
| | | this.$modal.closeLoading(); |
| | | }, |
| | | // ä¸ä¼ æååè° |
| | | handleUploadSuccess(res, file) { |
| | |
| | | for (let i in list) { |
| | | strs += list[i].url + separator; |
| | | } |
| | | return strs != '' ? strs.substr(0, strs.length - 1) : ''; |
| | | } |
| | | } |
| | | return strs != "" ? strs.substr(0, strs.length - 1) : ""; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
ÎļþÃû´Ó ruoyi-ui/src/components/Hamburger/index.vue ÐÞ¸Ä |
| | |
| | | <!-- svg徿 å°è£
--> |
| | | <template> |
| | | <div style="padding: 0 15px;" @click="toggleClick"> |
| | | <svg |
ÎļþÃû´Ó ruoyi-ui/src/components/HeaderSearch/index.vue ÐÞ¸Ä |
| | |
| | | <!-- 使ç¨å
¨å±svgicon徿 --> |
| | | <template> |
| | | <div :class="{'show':show}" class="header-search"> |
| | | <svg-icon class-name="search-icon" icon-class="search" @click.stop="click" /> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <!-- @author zhengjie --> |
| | | <!-- èªå®ä¹å¾æ åç§°å°è£
--> |
| | | <template> |
| | | <div class="icon-body"> |
| | | <el-input |
| | | v-model="name" |
| | | style="position: relative" |
| | | clearable |
| | | placeholder="请è¾å
¥å¾æ åç§°" |
| | | @clear="filterIcons" |
| | | @input.native="filterIcons" |
| | | > |
| | | <i slot="suffix" class="el-icon-search el-input__icon" /> |
| | | </el-input> |
| | | <div class="icon-list"> |
| | | <div |
| | | v-for="(item, index) in iconList" |
| | | :key="index" |
| | | @click="selectedIcon(item)" |
| | | > |
| | | <svg-icon :icon-class="item" style="height: 30px; width: 16px" /> |
| | | <span>{{ item }}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import icons from "./requireIcons"; |
| | | export default { |
| | | name: "IconSelect", |
| | | data() { |
| | | return { |
| | | name: "", |
| | | iconList: icons, |
| | | }; |
| | | }, |
| | | methods: { |
| | | filterIcons() { |
| | | this.iconList = icons; |
| | | if (this.name) { |
| | | this.iconList = this.iconList.filter((item) => |
| | | item.includes(this.name) |
| | | ); |
| | | } |
| | | }, |
| | | selectedIcon(name) { |
| | | this.$emit("selected", name); |
| | | document.body.click(); |
| | | }, |
| | | reset() { |
| | | this.name = ""; |
| | | this.iconList = icons; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style rel="stylesheet/scss" lang="scss" scoped> |
| | | .icon-body { |
| | | width: 100%; |
| | | padding: 10px; |
| | | .icon-list { |
| | | height: 200px; |
| | | overflow-y: scroll; |
| | | div { |
| | | height: 30px; |
| | | line-height: 30px; |
| | | margin-bottom: -5px; |
| | | cursor: pointer; |
| | | width: 33%; |
| | | float: left; |
| | | } |
| | | span { |
| | | display: inline-block; |
| | | vertical-align: -0.15em; |
| | | fill: currentColor; |
| | | overflow: hidden; |
| | | } |
| | | } |
| | | } |
| | | </style> |
ÎļþÃû´Ó ruoyi-ui/src/components/ImagePreview/index.vue ÐÞ¸Ä |
| | |
| | | <!-- imageå¾ç容å¨å°è£
--> |
| | | <template> |
| | | <el-image |
| | | :src="`${realSrc}`" |
ÎļþÃû´Ó ruoyi-ui/src/components/ImageUpload/index.vue ÐÞ¸Ä |
| | |
| | | <!-- ä¸ä¼ æä»¶å°è£
--> |
| | | <template> |
| | | <div class="component-upload-image"> |
| | | <el-upload |
| | |
| | | :headers="headers" |
| | | :file-list="fileList" |
| | | :on-preview="handlePictureCardPreview" |
| | | :class="{hide: this.fileList.length >= this.limit}" |
| | | :class="{ hide: this.fileList.length >= this.limit }" |
| | | > |
| | | <i class="el-icon-plus"></i> |
| | | </el-upload> |
| | | |
| | | |
| | | <!-- ä¸ä¼ æç¤º --> |
| | | <div class="el-upload__tip" slot="tip" v-if="showTip"> |
| | | 请ä¸ä¼ |
| | | <template v-if="fileSize"> 大å°ä¸è¶
è¿ <b style="color: #f56c6c">{{ fileSize }}MB</b> </template> |
| | | <template v-if="fileType"> æ ¼å¼ä¸º <b style="color: #f56c6c">{{ fileType.join("/") }}</b> </template> |
| | | <template v-if="fileSize"> |
| | | 大å°ä¸è¶
è¿ <b style="color: #f56c6c">{{ fileSize }}MB</b> |
| | | </template> |
| | | <template v-if="fileType"> |
| | | æ ¼å¼ä¸º <b style="color: #f56c6c">{{ fileType.join("/") }}</b> |
| | | </template> |
| | | çæä»¶ |
| | | </div> |
| | | |
| | |
| | | }, |
| | | // 大å°éå¶(MB) |
| | | fileSize: { |
| | | type: Number, |
| | | type: Number, |
| | | default: 5, |
| | | }, |
| | | // æä»¶ç±»å, ä¾å¦['png', 'jpg', 'jpeg'] |
| | |
| | | // æ¯å¦æ¾ç¤ºæç¤º |
| | | isShowTip: { |
| | | type: Boolean, |
| | | default: true |
| | | } |
| | | default: true, |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | headers: { |
| | | Authorization: "Bearer " + getToken(), |
| | | }, |
| | | fileList: [] |
| | | fileList: [], |
| | | }; |
| | | }, |
| | | watch: { |
| | |
| | | handler(val) { |
| | | if (val) { |
| | | // é¦å
å°å¼è½¬ä¸ºæ°ç» |
| | | const list = Array.isArray(val) ? val : this.value.split(','); |
| | | const list = Array.isArray(val) ? val : this.value.split(","); |
| | | // ç¶åå°æ°ç»è½¬ä¸ºå¯¹è±¡æ°ç» |
| | | this.fileList = list.map(item => { |
| | | this.fileList = list.map((item) => { |
| | | if (typeof item === "string") { |
| | | if (item.indexOf(this.baseUrl) === -1) { |
| | | item = { name: this.baseUrl + item, url: this.baseUrl + item }; |
| | | item = { name: this.baseUrl + item, url: this.baseUrl + item }; |
| | | } else { |
| | | item = { name: item, url: item }; |
| | | item = { name: item, url: item }; |
| | | } |
| | | } |
| | | return item; |
| | |
| | | } |
| | | }, |
| | | deep: true, |
| | | immediate: true |
| | | } |
| | | immediate: true, |
| | | }, |
| | | }, |
| | | computed: { |
| | | // æ¯å¦æ¾ç¤ºæç¤º |
| | |
| | | if (file.name.lastIndexOf(".") > -1) { |
| | | fileExtension = file.name.slice(file.name.lastIndexOf(".") + 1); |
| | | } |
| | | isImg = this.fileType.some(type => { |
| | | isImg = this.fileType.some((type) => { |
| | | if (file.type.indexOf(type) > -1) return true; |
| | | if (fileExtension && fileExtension.indexOf(type) > -1) return true; |
| | | return false; |
| | |
| | | } |
| | | |
| | | if (!isImg) { |
| | | this.$modal.msgError(`æä»¶æ ¼å¼ä¸æ£ç¡®, 请ä¸ä¼ ${this.fileType.join("/")}å¾çæ ¼å¼æä»¶!`); |
| | | this.$modal.msgError( |
| | | `æä»¶æ ¼å¼ä¸æ£ç¡®, 请ä¸ä¼ ${this.fileType.join("/")}å¾çæ ¼å¼æä»¶!` |
| | | ); |
| | | return false; |
| | | } |
| | | if (this.fileSize) { |
| | |
| | | }, |
| | | // å é¤å¾ç |
| | | handleDelete(file) { |
| | | const findex = this.fileList.map(f => f.name).indexOf(file.name); |
| | | if(findex > -1) { |
| | | const findex = this.fileList.map((f) => f.name).indexOf(file.name); |
| | | if (findex > -1) { |
| | | this.fileList.splice(findex, 1); |
| | | this.$emit("input", this.listToString(this.fileList)); |
| | | } |
| | |
| | | strs += list[i].url.replace(this.baseUrl, "") + separator; |
| | | } |
| | | } |
| | | return strs != '' ? strs.substr(0, strs.length - 1) : ''; |
| | | } |
| | | } |
| | | return strs != "" ? strs.substr(0, strs.length - 1) : ""; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style scoped lang="scss"> |
| | | // .el-upload--picture-card æ§å¶å å·é¨å |
| | | ::v-deep.hide .el-upload--picture-card { |
| | | display: none; |
| | | display: none; |
| | | } |
| | | // 廿å¨ç»ææ |
| | | ::v-deep .el-list-enter-active, |
| | | ::v-deep .el-list-leave-active { |
| | | transition: all 0s; |
| | | transition: all 0s; |
| | | } |
| | | |
| | | ::v-deep .el-list-enter, .el-list-leave-active { |
| | | opacity: 0; |
| | | transform: translateY(0); |
| | | ::v-deep .el-list-enter, |
| | | .el-list-leave-active { |
| | | opacity: 0; |
| | | transform: translateY(0); |
| | | } |
| | | </style> |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <!-- tagæ ç¾å°è£
--> |
| | | <template> |
| | | <el-card class="box-card"> |
| | | <el-row type="flex"> |
| | | <el-col> |
| | | <el-tag v-if="isShowLeft"> |
| | | <i :class="leftIon"></i> |
| | | <slot name="left-tag" /> |
| | | </el-tag> |
| | | </el-col> |
| | | <el-col> |
| | | <el-row type="flex" justify="end"> |
| | | <slot name="right" /> |
| | | </el-row> |
| | | </el-col> |
| | | </el-row> |
| | | </el-card> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: "PageTools", |
| | | data() { |
| | | return {}; |
| | | }, |
| | | props: { |
| | | leftIon: { |
| | | type: String, |
| | | default: "el-icon-info", |
| | | }, |
| | | isShowLeft: { |
| | | type: Boolean, |
| | | default: true, |
| | | }, |
| | | }, |
| | | created() {}, |
| | | |
| | | methods: {}, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="less" scoped></style> |
ÎļþÃû´Ó ruoyi-ui/src/components/Pagination/index.vue ÐÞ¸Ä |
| | |
| | | |
| | | <!-- åºé¨å页ç»ä»¶å°è£
--> |
| | | <template> |
| | | <div :class="{'hidden':hidden}" class="pagination-container"> |
| | | <el-pagination |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | // å¾
å® |
| | | import { scrollTo } from '@/utils/scroll-to' |
| | | |
| | | export default { |
ÎļþÃû´Ó ruoyi-ui/src/components/PanThumb/index.vue ÐÞ¸Ä |
| | |
| | | <!-- å¾çå±ç¤ºé¡µé¢ --> |
| | | <template> |
| | | <div :style="{zIndex:zIndex,height:height,width:width}" class="pan-item"> |
| | | <div class="pan-info"> |
ÎļþÃû´Ó ruoyi-ui/src/components/RightToolbar/index.vue ÐÞ¸Ä |
| | |
| | | <!-- é¼ æ 触åå¼¹åºæ --> |
| | | <template> |
| | | <div class="top-right-btn" :style="style"> |
| | | <el-row> |
| | | <el-tooltip class="item" effect="dark" :content="showSearch ? 'éèæç´¢' : 'æ¾ç¤ºæç´¢'" placement="top" v-if="search"> |
| | | <el-button size="mini" circle icon="el-icon-search" @click="toggleSearch()" /> |
| | | <el-tooltip |
| | | class="item" |
| | | effect="dark" |
| | | :content="showSearch ? 'éèæç´¢' : 'æ¾ç¤ºæç´¢'" |
| | | placement="top" |
| | | v-if="search" |
| | | > |
| | | <el-button |
| | | size="mini" |
| | | circle |
| | | icon="el-icon-search" |
| | | @click="toggleSearch()" |
| | | /> |
| | | </el-tooltip> |
| | | <el-tooltip class="item" effect="dark" content="å·æ°" placement="top"> |
| | | <el-button size="mini" circle icon="el-icon-refresh" @click="refresh()" /> |
| | | <el-button |
| | | size="mini" |
| | | circle |
| | | icon="el-icon-refresh" |
| | | @click="refresh()" |
| | | /> |
| | | </el-tooltip> |
| | | <el-tooltip class="item" effect="dark" content="æ¾éå" placement="top" v-if="columns"> |
| | | <el-button size="mini" circle icon="el-icon-menu" @click="showColumn()" /> |
| | | <el-tooltip |
| | | class="item" |
| | | effect="dark" |
| | | content="æ¾éå" |
| | | placement="top" |
| | | v-if="columns" |
| | | > |
| | | <el-button |
| | | size="mini" |
| | | circle |
| | | icon="el-icon-menu" |
| | | @click="showColumn()" |
| | | /> |
| | | </el-tooltip> |
| | | </el-row> |
| | | <el-dialog :title="title" :visible.sync="open" append-to-body> |
| | |
| | | props: { |
| | | showSearch: { |
| | | type: Boolean, |
| | | default: true, |
| | | default: true, //requiredæ¯å¦å¿
é¡»ï¼ä¸ºtrueæ¸²ææ¶ä¼æåºtypeErrorï¼defaultï¼é»è®¤å¼ï¼ |
| | | }, |
| | | columns: { |
| | | type: Array, |
| | |
| | | ret.marginRight = `${this.gutter / 2}px`; |
| | | } |
| | | return ret; |
| | | } |
| | | }, |
| | | }, |
| | | created() { |
| | | // æ¾éååå§é»è®¤éèå |
ÎļþÃû´Ó ruoyi-ui/src/components/Screenfull/index.vue ÐÞ¸Ä |
| | |
| | | <!-- 徿 ç¹å»æ¾å¤§ --> |
| | | <template> |
| | | <div> |
| | | <svg-icon :icon-class="isFullscreen?'exit-fullscreen':'fullscreen'" @click="click" /> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <!-- 䏿èåå°è£
--> |
| | | <template> |
| | | <el-dropdown trigger="click" @command="handleSetSize"> |
| | | <div> |
| | | <svg-icon class-name="size-icon" icon-class="size" /> |
| | | </div> |
| | | <el-dropdown-menu slot="dropdown"> |
| | | <el-dropdown-item |
| | | v-for="item of sizeOptions" |
| | | :key="item.value" |
| | | :disabled="size === item.value" |
| | | :command="item.value" |
| | | > |
| | | {{ item.label }} |
| | | </el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </el-dropdown> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | sizeOptions: [ |
| | | { label: "Default", value: "default" }, |
| | | { label: "Medium", value: "medium" }, |
| | | { label: "Small", value: "small" }, |
| | | { label: "Mini", value: "mini" }, |
| | | ], |
| | | }; |
| | | }, |
| | | computed: { |
| | | size() { |
| | | return this.$store.getters.size; |
| | | }, |
| | | }, |
| | | methods: { |
| | | handleSetSize(size) { |
| | | this.$ELEMENT.size = size; |
| | | this.$store.dispatch("app/setSize", size); |
| | | this.refreshView(); |
| | | this.$message({ |
| | | message: "Switch Size Success", |
| | | type: "success", |
| | | }); |
| | | }, |
| | | refreshView() { |
| | | // In order to make the cached page re-rendered |
| | | this.$store.dispatch("tagsView/delAllCachedViews", this.$route); |
| | | |
| | | const { fullPath } = this.$route; |
| | | |
| | | this.$nextTick(() => { |
| | | this.$router.replace({ |
| | | path: "/redirect" + fullPath, |
| | | }); |
| | | }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <!-- svgå°è£
--> |
| | | <template> |
| | | <div |
| | | v-if="isExternal" |
| | | :style="styleExternalIcon" |
| | | class="svg-external-icon svg-icon" |
| | | v-on="$listeners" |
| | | /> |
| | | <svg v-else :class="svgClass" aria-hidden="true" v-on="$listeners"> |
| | | <use :xlink:href="iconName" /> |
| | | </svg> |
| | | </template> |
| | | |
| | | <script> |
| | | import { isExternal } from "@/utils/validate"; |
| | | |
| | | export default { |
| | | name: "SvgIcon", |
| | | props: { |
| | | iconClass: { |
| | | type: String, |
| | | required: true, |
| | | }, |
| | | className: { |
| | | type: String, |
| | | default: "", |
| | | }, |
| | | }, |
| | | computed: { |
| | | isExternal() { |
| | | return isExternal(this.iconClass); |
| | | }, |
| | | iconName() { |
| | | return `#icon-${this.iconClass}`; |
| | | }, |
| | | svgClass() { |
| | | if (this.className) { |
| | | return "svg-icon " + this.className; |
| | | } else { |
| | | return "svg-icon"; |
| | | } |
| | | }, |
| | | styleExternalIcon() { |
| | | return { |
| | | mask: `url(${this.iconClass}) no-repeat 50% 50%`, |
| | | "-webkit-mask": `url(${this.iconClass}) no-repeat 50% 50%`, |
| | | }; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .svg-icon { |
| | | width: 1em; |
| | | height: 1em; |
| | | vertical-align: -0.15em; |
| | | fill: currentColor; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .svg-external-icon { |
| | | background-color: currentColor; |
| | | mask-size: cover !important; |
| | | display: inline-block; |
| | | } |
| | | </style> |
ÎļþÃû´Ó ruoyi-ui/src/components/ThemePicker/index.vue ÐÞ¸Ä |
| | |
| | | <!-- é¢è²éæ©å¨ --> |
| | | <template> |
| | | <el-color-picker |
| | | v-model="theme" |
ÎļþÃû´Ó ruoyi-ui/src/components/TopNav/index.vue ÐÞ¸Ä |
| | |
| | | <!-- é¡¶é¨å¯¼èªå°è£
--> |
| | | <template> |
| | | <el-menu |
| | | :default-active="activeMenu" |
| | |
| | | @select="handleSelect" |
| | | > |
| | | <template v-for="(item, index) in topMenus"> |
| | | <el-menu-item :style="{'--theme': theme}" :index="item.path" :key="index" v-if="index < visibleNumber" |
| | | <el-menu-item |
| | | :style="{ '--theme': theme }" |
| | | :index="item.path" |
| | | :key="index" |
| | | v-if="index < visibleNumber" |
| | | ><svg-icon :icon-class="item.meta.icon" /> |
| | | {{ item.meta.title }}</el-menu-item |
| | | > |
| | | </template> |
| | | |
| | | <!-- é¡¶é¨èåè¶
åºæ°éæå --> |
| | | <el-submenu :style="{'--theme': theme}" index="more" v-if="topMenus.length > visibleNumber"> |
| | | <el-submenu |
| | | :style="{ '--theme': theme }" |
| | | index="more" |
| | | v-if="topMenus.length > visibleNumber" |
| | | > |
| | | <template slot="title">æ´å¤èå</template> |
| | | <template v-for="(item, index) in topMenus"> |
| | | <el-menu-item |
| | |
| | | import { constantRoutes } from "@/router"; |
| | | |
| | | // éèä¾§è¾¹æ è·¯ç± |
| | | const hideList = ['/index', '/user/profile']; |
| | | const hideList = ["/index", "/user/profile"]; |
| | | |
| | | export default { |
| | | data() { |
| | |
| | | // 顶鍿 åå§æ° |
| | | visibleNumber: 5, |
| | | // å½åæ¿æ´»èåç index |
| | | currentIndex: undefined |
| | | currentIndex: undefined, |
| | | }; |
| | | }, |
| | | computed: { |
| | |
| | | if (menu.hidden !== true) { |
| | | // å
¼å®¹é¡¶é¨æ ä¸çº§èåå
é¨è·³è½¬ |
| | | if (menu.path === "/") { |
| | | topMenus.push(menu.children[0]); |
| | | topMenus.push(menu.children[0]); |
| | | } else { |
| | | topMenus.push(menu); |
| | | topMenus.push(menu); |
| | | } |
| | | } |
| | | }); |
| | |
| | | this.routers.map((router) => { |
| | | for (var item in router.children) { |
| | | if (router.children[item].parentPath === undefined) { |
| | | if(router.path === "/") { |
| | | if (router.path === "/") { |
| | | router.children[item].path = "/" + router.children[item].path; |
| | | } else { |
| | | if(!this.ishttp(router.children[item].path)) { |
| | | router.children[item].path = router.path + "/" + router.children[item].path; |
| | | if (!this.ishttp(router.children[item].path)) { |
| | | router.children[item].path = |
| | | router.path + "/" + router.children[item].path; |
| | | } |
| | | } |
| | | router.children[item].parentPath = router.path; |
| | |
| | | activeMenu() { |
| | | const path = this.$route.path; |
| | | let activePath = path; |
| | | if (path !== undefined && path.lastIndexOf("/") > 0 && hideList.indexOf(path) === -1) { |
| | | if ( |
| | | path !== undefined && |
| | | path.lastIndexOf("/") > 0 && |
| | | hideList.indexOf(path) === -1 |
| | | ) { |
| | | const tmpPath = path.substring(1, path.length); |
| | | activePath = "/" + tmpPath.substring(0, tmpPath.indexOf("/")); |
| | | if (!this.$route.meta.link) { |
| | | this.$store.dispatch('app/toggleSideBarHide', false); |
| | | this.$store.dispatch("app/toggleSideBarHide", false); |
| | | } |
| | | } else if(!this.$route.children) { |
| | | } else if (!this.$route.children) { |
| | | activePath = path; |
| | | this.$store.dispatch('app/toggleSideBarHide', true); |
| | | this.$store.dispatch("app/toggleSideBarHide", true); |
| | | } |
| | | this.activeRoutes(activePath); |
| | | return activePath; |
| | | }, |
| | | }, |
| | | beforeMount() { |
| | | window.addEventListener('resize', this.setVisibleNumber) |
| | | window.addEventListener("resize", this.setVisibleNumber); |
| | | }, |
| | | beforeDestroy() { |
| | | window.removeEventListener('resize', this.setVisibleNumber) |
| | | window.removeEventListener("resize", this.setVisibleNumber); |
| | | }, |
| | | mounted() { |
| | | this.setVisibleNumber(); |
| | |
| | | // èåéæ©äºä»¶ |
| | | handleSelect(key, keyPath) { |
| | | this.currentIndex = key; |
| | | const route = this.routers.find(item => item.path === key); |
| | | const route = this.routers.find((item) => item.path === key); |
| | | if (this.ishttp(key)) { |
| | | // http(s):// è·¯å¾æ°çªå£æå¼ |
| | | window.open(key, "_blank"); |
| | | } else if (!route || !route.children) { |
| | | // 没æåè·¯ç±è·¯å¾å
é¨æå¼ |
| | | this.$router.push({ path: key }); |
| | | this.$store.dispatch('app/toggleSideBarHide', true); |
| | | this.$store.dispatch("app/toggleSideBarHide", true); |
| | | } else { |
| | | // æ¾ç¤ºå·¦ä¾§èå¨èå |
| | | this.activeRoutes(key); |
| | | this.$store.dispatch('app/toggleSideBarHide', false); |
| | | this.$store.dispatch("app/toggleSideBarHide", false); |
| | | } |
| | | }, |
| | | // å½åæ¿æ´»çè·¯ç± |
| | |
| | | } |
| | | }); |
| | | } |
| | | if(routes.length > 0) { |
| | | if (routes.length > 0) { |
| | | this.$store.commit("SET_SIDEBAR_ROUTERS", routes); |
| | | } else { |
| | | this.$store.dispatch('app/toggleSideBarHide', true); |
| | | this.$store.dispatch("app/toggleSideBarHide", true); |
| | | } |
| | | }, |
| | | ishttp(url) { |
| | | return url.indexOf('http://') !== -1 || url.indexOf('https://') !== -1 |
| | | } |
| | | return url.indexOf("http://") !== -1 || url.indexOf("https://") !== -1; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | margin: 0 10px !important; |
| | | } |
| | | |
| | | .topmenu-container.el-menu--horizontal > .el-menu-item.is-active, .el-menu--horizontal > .el-submenu.is-active .el-submenu__title { |
| | | border-bottom: 2px solid #{'var(--theme)'} !important; |
| | | .topmenu-container.el-menu--horizontal > .el-menu-item.is-active, |
| | | .el-menu--horizontal > .el-submenu.is-active .el-submenu__title { |
| | | border-bottom: 2px solid #{"var(--theme)"} !important; |
| | | color: #303133; |
| | | } |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <!-- excelæä»¶ä¸ä¼ --> |
| | | <template> |
| | | <div class="upload-excel"> |
| | | <div class="btn-upload"> |
| | | <el-button |
| | | :loading="loading" |
| | | size="mini" |
| | | type="primary" |
| | | @click="handleUpload" |
| | | > |
| | | ç¹å»ä¸ä¼ |
| | | </el-button> |
| | | </div> |
| | | |
| | | <input |
| | | ref="excel-upload-input" |
| | | class="excel-upload-input" |
| | | type="file" |
| | | accept=".xlsx, .xls" |
| | | @change="handleClick" |
| | | /> |
| | | <div |
| | | class="drop" |
| | | @drop="handleDrop" |
| | | @dragover="handleDragover" |
| | | @dragenter="handleDragover" |
| | | > |
| | | <i class="el-icon-upload" /> |
| | | <span>å°æä»¶æå°æ¤å¤</span> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import XLSX from "xlsx"; |
| | | export default { |
| | | name: "UploadExcel", |
| | | props: { |
| | | beforeUpload: Function, // eslint-disable-line |
| | | onSuccess: Function, // eslint-disable-line |
| | | }, |
| | | data() { |
| | | return { |
| | | loading: false, |
| | | excelData: { |
| | | header: null, |
| | | results: null, |
| | | }, |
| | | }; |
| | | }, |
| | | methods: { |
| | | generateData({ header, results }) { |
| | | this.excelData.header = header; |
| | | this.excelData.results = results; |
| | | this.onSuccess && this.onSuccess(this.excelData); |
| | | }, |
| | | handleDrop(e) { |
| | | e.stopPropagation(); |
| | | e.preventDefault(); |
| | | if (this.loading) return; |
| | | const files = e.dataTransfer.files; |
| | | if (files.length !== 1) { |
| | | this.$message.error("Only support uploading one file!"); |
| | | return; |
| | | } |
| | | const rawFile = files[0]; // only use files[0] |
| | | if (!this.isExcel(rawFile)) { |
| | | this.$message.error( |
| | | "Only supports upload .xlsx, .xls, .csv suffix files" |
| | | ); |
| | | return false; |
| | | } |
| | | this.upload(rawFile); |
| | | e.stopPropagation(); |
| | | e.preventDefault(); |
| | | }, |
| | | handleDragover(e) { |
| | | e.stopPropagation(); |
| | | e.preventDefault(); |
| | | e.dataTransfer.dropEffect = "copy"; |
| | | }, |
| | | handleUpload() { |
| | | this.$refs["excel-upload-input"].click(); |
| | | }, |
| | | handleClick(e) { |
| | | const files = e.target.files; |
| | | const rawFile = files[0]; // only use files[0] |
| | | if (!rawFile) return; |
| | | this.upload(rawFile); |
| | | }, |
| | | upload(rawFile) { |
| | | this.$refs["excel-upload-input"].value = null; // fix can't select the same excel |
| | | if (!this.beforeUpload) { |
| | | this.readerData(rawFile); |
| | | return; |
| | | } |
| | | const before = this.beforeUpload(rawFile); |
| | | if (before) { |
| | | this.readerData(rawFile); |
| | | } |
| | | }, |
| | | readerData(rawFile) { |
| | | this.loading = true; |
| | | return new Promise((resolve, reject) => { |
| | | const reader = new FileReader(); |
| | | reader.onload = (e) => { |
| | | const data = e.target.result; |
| | | const workbook = XLSX.read(data, { type: "array" }); |
| | | const firstSheetName = workbook.SheetNames[0]; |
| | | const worksheet = workbook.Sheets[firstSheetName]; |
| | | const header = this.getHeaderRow(worksheet); |
| | | const results = XLSX.utils.sheet_to_json(worksheet); |
| | | this.generateData({ header, results }); |
| | | this.loading = false; |
| | | resolve(); |
| | | }; |
| | | reader.readAsArrayBuffer(rawFile); |
| | | }); |
| | | }, |
| | | getHeaderRow(sheet) { |
| | | const headers = []; |
| | | const range = XLSX.utils.decode_range(sheet["!ref"]); |
| | | let C; |
| | | const R = range.s.r; |
| | | /* start in the first row */ |
| | | for (C = range.s.c; C <= range.e.c; ++C) { |
| | | /* walk every column in the range */ |
| | | const cell = sheet[XLSX.utils.encode_cell({ c: C, r: R })]; |
| | | /* find the cell in the first row */ |
| | | let hdr = "UNKNOWN " + C; // <-- replace with your desired default |
| | | if (cell && cell.t) hdr = XLSX.utils.format_cell(cell); |
| | | headers.push(hdr); |
| | | } |
| | | return headers; |
| | | }, |
| | | isExcel(file) { |
| | | return /\.(xlsx|xls|csv)$/.test(file.name); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style scoped lang="scss"> |
| | | .upload-excel { |
| | | display: flex; |
| | | justify-content: center; |
| | | margin-top: 100px; |
| | | .excel-upload-input { |
| | | display: none; |
| | | z-index: -9999; |
| | | } |
| | | .btn-upload, |
| | | .drop { |
| | | border: 1px dashed #bbb; |
| | | width: 350px; |
| | | height: 160px; |
| | | text-align: center; |
| | | line-height: 160px; |
| | | } |
| | | .drop { |
| | | line-height: 80px; |
| | | color: #bbb; |
| | | i { |
| | | font-size: 60px; |
| | | display: block; |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <!-- å¾çä¸ä¼ å°è£
--> |
| | | <template> |
| | | <div> |
| | | <el-upload |
| | | :file-list="filelist" |
| | | v-loading="loading" |
| | | element-loading-text="æ¼å½å è½½ä¸" |
| | | element-loading-spinner="el-icon-loading" |
| | | element-loading-background="rgba(0, 0, 0, 0.8)" |
| | | action="https://jsonplaceholder.typicode.com/posts/" |
| | | :http-request="uoloadimg" |
| | | :on-change="onChange" |
| | | :on-remove="onRemove" |
| | | :on-preview="onPreview" |
| | | :before-upload="onBeforeUpload" |
| | | list-type="picture-card" |
| | | :limit="1" |
| | | :class="filelist.length === 1 ? 'father' : ''" |
| | | class="custom-upload" |
| | | > |
| | | <i class="el-icon-plus"></i> |
| | | </el-upload> |
| | | <el-dialog :visible.sync="fileonPreview"> |
| | | <img :src="fileimg" alt="" /> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import COS from "cos-js-sdk-v5"; |
| | | var cos = new COS({ |
| | | SecretId: "AKIDxlNmyua2FDwSjmeHGVVHxNYVghSyFhus", |
| | | SecretKey: "nPp8D5mKgomaBawHPI1avzuhJhqombCZ", |
| | | }); |
| | | console.log(cos); |
| | | export default { |
| | | name: "UploadImg", |
| | | data() { |
| | | return { |
| | | filelist: [], |
| | | fileimg: "", |
| | | fileonPreview: false, |
| | | loading: false, |
| | | }; |
| | | }, |
| | | |
| | | created() {}, |
| | | |
| | | methods: { |
| | | // åéå¾çä¸ä¼ |
| | | uoloadimg({ file }) { |
| | | this.loading = true; |
| | | cos.putObject( |
| | | { |
| | | Bucket: "hmhr-31-1313341522" /* å¿
é¡» */, |
| | | Region: "ap-shanghai" /* å卿¡¶æå¨å°åï¼å¿
须忮µ */, |
| | | Key: file.name /* å¿
é¡» */, |
| | | StorageClass: "STANDARD", |
| | | Body: file, // ä¸ä¼ æä»¶å¯¹è±¡ |
| | | onProgress: function (progressData) { |
| | | console.log(JSON.stringify(progressData)); |
| | | }, |
| | | }, |
| | | (err, data) => { |
| | | this.loading = false; |
| | | if (err || data.statusCode != 200) { |
| | | return this.$$message.error(""); |
| | | } |
| | | this.$emit("onSuccess", { |
| | | url: "https://" + data.Location, |
| | | }); |
| | | } |
| | | ); |
| | | }, |
| | | // åå¨å¾çå表 |
| | | onChange(file, filelist) { |
| | | this.filelist = filelist; |
| | | }, |
| | | //å é¤ |
| | | onRemove(file, filelist) { |
| | | this.filelist = filelist; |
| | | }, |
| | | // é¢è§ |
| | | onPreview(file) { |
| | | console.log(file); |
| | | this.fileonPreview = true; |
| | | this.fileimg = file.url; |
| | | }, |
| | | // ä¸ä¼ å夿 |
| | | onBeforeUpload(file) { |
| | | console.log(file); |
| | | const types = ["image/jpeg", "image/png", "image/gif"]; |
| | | if (!types.includes(file.type)) { |
| | | this.$message.error("è¯·éæ©" + types.join(", ") + "æ ¼å¼å¾ç"); |
| | | return false; |
| | | } |
| | | const maxSize = 1024 * 1024 * 2; |
| | | if (file.size > maxSize) { |
| | | this.$message.error("éæ©å¾çä¸è¶
è¿2mb"); |
| | | return false; |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .father .el-upload--picture-card { |
| | | display: none; |
| | | } |
| | | .custom-upload { |
| | | width: 148px; |
| | | height: 148px; |
| | | overflow: hidden; |
| | | } |
| | | </style> |
ÎļþÃû´Ó ruoyi-ui/src/components/iFrame/index.vue ÐÞ¸Ä |
| | |
| | | <!-- 页é¢å
åµå
¥å°è£
--> |
| | | <template> |
| | | <div v-loading="loading" :style="'height:' + height"> |
| | | <iframe |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import PageTools from "@/components/PageTools" |
| | | import UploadExcel from "@/components/UploadExcel" |
| | | import UploadImg from "@/components/UploadImg" |
| | | const component=[PageTools,UploadExcel,UploadImg] |
| | | export default{ |
| | | install(Vue){ |
| | | component.forEach((component)=>{ |
| | | Vue.component(component.name,component) |
| | | }) |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | // åå·¥ |
| | | export default { |
| | | // èç¨å½¢å¼ |
| | | hireType: [ |
| | | { |
| | | id: 1, |
| | | value: 'æ£å¼' |
| | | }, |
| | | { |
| | | id: 2, |
| | | value: '鿣å¼' |
| | | } |
| | | ], |
| | | // 管çå½¢å¼ |
| | | subjection: [ |
| | | { |
| | | id: '1', |
| | | value: 'æ»é¨' |
| | | }, |
| | | { |
| | | id: '2', |
| | | value: 'ååå¸' |
| | | } |
| | | ], |
| | | // å¨èç¶æ |
| | | workingState: [ |
| | | { |
| | | id: '1', |
| | | value: 'å¨è' |
| | | }, |
| | | { |
| | | id: '2', |
| | | value: '离è' |
| | | } |
| | | ], |
| | | // 离èç±»å |
| | | leaveType: [ |
| | | { |
| | | id: '1', |
| | | value: '主å¨ç¦»è' |
| | | }, |
| | | { |
| | | id: '2', |
| | | value: '被å¨ç¦»è' |
| | | }, |
| | | { |
| | | id: '3', |
| | | value: 'éä¼' |
| | | } |
| | | ], |
| | | // ååæ |
| | | attritionMonth: [ |
| | | { |
| | | id: '1', |
| | | value: 'ç¦»èæ¥æ¬æ' |
| | | }, |
| | | { |
| | | id: '2', |
| | | value: 'ç¦»èæ¥æ¬¡æ' |
| | | } |
| | | ], |
| | | // èç¨å½¢å¼ |
| | | informaltype: [ |
| | | { |
| | | id: '2', |
| | | value: 'å®ä¹ ' |
| | | }, |
| | | { |
| | | id: '3', |
| | | value: 'å³å¡' |
| | | }, |
| | | { |
| | | id: '4', |
| | | value: '顾é®' |
| | | }, |
| | | { |
| | | id: '5', |
| | | value: 'è¿è' |
| | | }, |
| | | { |
| | | id: '6', |
| | | value: 'å¤å
' |
| | | } |
| | | ], |
| | | // æé«å¦å |
| | | highestDegree: [ |
| | | { |
| | | id: '1', |
| | | value: 'åä¸' |
| | | }, |
| | | { |
| | | id: '2', |
| | | value: 'é«ä¸' |
| | | }, |
| | | { |
| | | id: '3', |
| | | value: 'ä¸ä¸' |
| | | }, |
| | | { |
| | | id: '4', |
| | | value: '大ä¸' |
| | | }, |
| | | { |
| | | id: '5', |
| | | value: 'æ¬ç§' |
| | | }, |
| | | { |
| | | id: '6', |
| | | value: 'ç¡å£«' |
| | | }, |
| | | { |
| | | id: '7', |
| | | value: 'å士' |
| | | }, |
| | | { |
| | | id: '8', |
| | | value: 'å
¶ä»' |
| | | } |
| | | ], |
| | | // å½å®¶/å°åº |
| | | isOverseas: [ |
| | | { |
| | | id: '1', |
| | | value: 'ä¸å½å¤§é' |
| | | }, |
| | | { |
| | | id: '2', |
| | | value: '港澳å°å½å¤' |
| | | } |
| | | ], |
| | | // æ§å« |
| | | gender: [ |
| | | { |
| | | id: '1', |
| | | value: 'ç·' |
| | | }, |
| | | { |
| | | id: '2', |
| | | value: '女' |
| | | } |
| | | ], |
| | | // å©å§»ç¶åµ |
| | | maritaStatus: [ |
| | | { |
| | | id: '1', |
| | | value: 'æªå©' |
| | | }, |
| | | { |
| | | id: '2', |
| | | value: 'å·²å©' |
| | | }, |
| | | { |
| | | id: '3', |
| | | value: '离å¼' |
| | | } |
| | | ], |
| | | // çè |
| | | animalSymbol: [ |
| | | { |
| | | id: '1', |
| | | value: 'é¼ ' |
| | | }, |
| | | { |
| | | id: '2', |
| | | value: 'ç' |
| | | }, |
| | | { |
| | | id: '3', |
| | | value: 'è' |
| | | }, |
| | | { |
| | | id: '4', |
| | | value: 'å
' |
| | | }, |
| | | { |
| | | id: '5', |
| | | value: 'é¾' |
| | | }, |
| | | { |
| | | id: '6', |
| | | value: 'è' |
| | | }, |
| | | { |
| | | id: '7', |
| | | value: '马' |
| | | }, |
| | | { |
| | | id: '8', |
| | | value: 'ç¾' |
| | | }, |
| | | { |
| | | id: '9', |
| | | value: 'ç´' |
| | | }, |
| | | { |
| | | id: '10', |
| | | value: '鸡' |
| | | }, |
| | | { |
| | | id: '11', |
| | | value: 'ç' |
| | | }, |
| | | { |
| | | id: '12', |
| | | value: 'çª' |
| | | } |
| | | ], |
| | | // æåº§ |
| | | constellation: [ |
| | | { |
| | | code: 1, |
| | | value: 'æ°´ç¶åº§' |
| | | }, |
| | | { |
| | | code: 2, |
| | | value: 'å鱼座' |
| | | }, |
| | | { |
| | | code: 3, |
| | | value: 'ç½ç¾åº§' |
| | | }, |
| | | { |
| | | code: 4, |
| | | value: 'éç座' |
| | | }, |
| | | { |
| | | code: 5, |
| | | value: 'åå座' |
| | | }, |
| | | { |
| | | code: 6, |
| | | value: 'å·¨è¹åº§' |
| | | }, |
| | | { |
| | | code: 7, |
| | | value: 'ç®å座' |
| | | }, |
| | | { |
| | | code: 8, |
| | | value: 'å¤å¥³åº§' |
| | | }, |
| | | { |
| | | code: 9, |
| | | value: '天秤座' |
| | | }, |
| | | { |
| | | code: 10, |
| | | value: '天è座' |
| | | }, |
| | | { |
| | | code: 11, |
| | | value: 'å°æåº§' |
| | | }, |
| | | { |
| | | code: 12, |
| | | value: 'æ©ç¾¯åº§' |
| | | } |
| | | ], |
| | | // è¡å |
| | | bloodType: [ |
| | | { |
| | | id: '1', |
| | | value: 'Aå' |
| | | }, |
| | | { |
| | | id: '2', |
| | | value: 'Bå' |
| | | }, |
| | | { |
| | | id: '3', |
| | | value: 'Oå' |
| | | }, |
| | | { |
| | | id: '4', |
| | | value: 'ABå' |
| | | } |
| | | ], |
| | | // å¦å |
| | | educationType: [ |
| | | { |
| | | id: '1', |
| | | value: 'ç»æ' |
| | | }, |
| | | { |
| | | id: '2', |
| | | value: 'èªè' |
| | | }, |
| | | { |
| | | id: '3', |
| | | value: 'æè' |
| | | } |
| | | ], |
| | | // è½¬æ£ |
| | | positiveType: [ |
| | | { |
| | | id: '1', |
| | | value: '已转æ£' |
| | | }, |
| | | { |
| | | id: '2', |
| | | value: 'æªè½¬æ£' |
| | | } |
| | | ], |
| | | // ååæé |
| | | contractPeriod: [ |
| | | { |
| | | id: '1', |
| | | value: '6æ' |
| | | }, |
| | | { |
| | | id: '2', |
| | | value: '12æ' |
| | | }, |
| | | { |
| | | id: '3', |
| | | value: '24æ' |
| | | }, |
| | | { |
| | | id: '4', |
| | | value: '36æ' |
| | | }, |
| | | { |
| | | id: '5', |
| | | value: 'å
¶ä»' |
| | | } |
| | | ], |
| | | // ç¾çº¦æ¬¡æ° |
| | | renewalCount: [ |
| | | { |
| | | id: 1, |
| | | value: '0次' |
| | | }, |
| | | { |
| | | id: 2, |
| | | value: '1次' |
| | | }, |
| | | { |
| | | id: 3, |
| | | value: '2次' |
| | | }, |
| | | { |
| | | id: 4, |
| | | value: '3次' |
| | | }, |
| | | { |
| | | id: 5, |
| | | value: '4次æä»¥ä¸' |
| | | } |
| | | ], |
| | | // ç®åæ¥æº |
| | | resumeSource: [ |
| | | { |
| | | id: '1', |
| | | value: 'æºèæè' |
| | | }, |
| | | { |
| | | id: '2', |
| | | value: 'æå¾ç½' |
| | | }, |
| | | { |
| | | id: '3', |
| | | value: 'åç¨æ å¿§' |
| | | }, |
| | | { |
| | | id: '4', |
| | | value: 'çèç½' |
| | | }, |
| | | { |
| | | id: '5', |
| | | value: 'æ ¡å宣讲' |
| | | }, |
| | | { |
| | | id: '6', |
| | | value: 'ç头' |
| | | }, |
| | | { |
| | | id: '7', |
| | | value: 'å
鍿¨è' |
| | | } |
| | | ], |
| | | // 社æ/æ ¡æ |
| | | hireSourceType: [ |
| | | { |
| | | id: '1', |
| | | value: '社æ' |
| | | }, |
| | | { |
| | | id: '2', |
| | | value: 'æ ¡æ' |
| | | } |
| | | ], |
| | | // æ°å |
| | | // é¨é¨ |
| | | departments: [ |
| | | { |
| | | id: '1', |
| | | value: 'æ»è£å' |
| | | }, |
| | | { |
| | | id: '2', |
| | | value: 'ç ç©¶é¢' |
| | | } |
| | | ], |
| | | // èä½ç¶æ |
| | | stausInfos: [ |
| | | { |
| | | id: '1', |
| | | value: 'å¨è' |
| | | }, |
| | | { |
| | | id: '2', |
| | | value: 'å
¥è' |
| | | }, |
| | | { |
| | | id: '3', |
| | | value: '离è' |
| | | } |
| | | ], |
| | | // ä¸ä¼ æ°æ®è¡¨å¤´ |
| | | importMapKeyPath: { |
| | | å
¥èæ¥æ: 'timeOfEntry', |
| | | å§å: "username", |
| | | å·¥å·: "workNumber", |
| | | ææºå·: "mobile", |
| | | è½¬æ£æ¥æ: "correctionTime" |
| | | } |
| | | } |
| | | |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | export const imgError = { |
| | | // å½è¢«ç»å®çå
ç´ æå
¥å°DOMä¸ |
| | | inserted: function (el, { value }) { |
| | | // çå¬img/srcæ¾ç¤ºå¤±è´¥æ
åµ |
| | | if (!el.src) { |
| | | el.src = value |
| | | } else { |
| | | // èç¦ |
| | | el.onerror = function () { |
| | | el.src = value |
| | | } |
| | | } |
| | | }, |
| | | // æä»¤ç»å®çå
ç´ æ´æ°æ¶çæ |
| | | updated(el,{ value}) { |
| | | if (!el.src) { |
| | | el.src=value |
| | | } |
| | | }, |
| | | } |
| | | export const aa = {} |
| | | export const bb = {} |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import dayjs from 'dayjs'; |
| | | // è¿æ»¤å¨ |
| | | export const formatTime=(val)=>{ |
| | | return dayjs(val).format('YYYY-MM-DD') |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <el-drawer |
| | | size="280px" |
| | | :visible="visible" |
| | | :with-header="false" |
| | | :append-to-body="true" |
| | | :show-close="false" |
| | | > |
| | | <div class="drawer-container"> |
| | | <div> |
| | | <div class="setting-drawer-content"> |
| | | <div class="setting-drawer-title"> |
| | | <h3 class="drawer-title">主é¢é£æ ¼è®¾ç½®</h3> |
| | | </div> |
| | | <div class="setting-drawer-block-checbox"> |
| | | <div |
| | | class="setting-drawer-block-checbox-item" |
| | | @click="handleTheme('theme-dark')" |
| | | > |
| | | <img src="@/assets/images/dark.svg" alt="dark" /> |
| | | <div |
| | | v-if="sideTheme === 'theme-dark'" |
| | | class="setting-drawer-block-checbox-selectIcon" |
| | | style="display: block" |
| | | > |
| | | <i aria-label="徿 : check" class="anticon anticon-check"> |
| | | <svg |
| | | viewBox="64 64 896 896" |
| | | data-icon="check" |
| | | width="1em" |
| | | height="1em" |
| | | :fill="theme" |
| | | aria-hidden="true" |
| | | focusable="false" |
| | | class="" |
| | | > |
| | | <path |
| | | d="M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z" |
| | | /> |
| | | </svg> |
| | | </i> |
| | | </div> |
| | | </div> |
| | | <div |
| | | class="setting-drawer-block-checbox-item" |
| | | @click="handleTheme('theme-light')" |
| | | > |
| | | <img src="@/assets/images/light.svg" alt="light" /> |
| | | <div |
| | | v-if="sideTheme === 'theme-light'" |
| | | class="setting-drawer-block-checbox-selectIcon" |
| | | style="display: block" |
| | | > |
| | | <i aria-label="徿 : check" class="anticon anticon-check"> |
| | | <svg |
| | | viewBox="64 64 896 896" |
| | | data-icon="check" |
| | | width="1em" |
| | | height="1em" |
| | | :fill="theme" |
| | | aria-hidden="true" |
| | | focusable="false" |
| | | class="" |
| | | > |
| | | <path |
| | | d="M912 190h-69.9c-9.8 0-19.1 4.5-25.1 12.2L404.7 724.5 207 474a32 32 0 0 0-25.1-12.2H112c-6.7 0-10.4 7.7-6.3 12.9l273.9 347c12.8 16.2 37.4 16.2 50.3 0l488.4-618.9c4.1-5.1.4-12.8-6.3-12.8z" |
| | | /> |
| | | </svg> |
| | | </i> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="drawer-item"> |
| | | <span>主é¢é¢è²</span> |
| | | <theme-picker |
| | | style="float: right; height: 26px; margin: -3px 8px 0 0" |
| | | @change="themeChange" |
| | | /> |
| | | </div> |
| | | </div> |
| | | |
| | | <el-divider /> |
| | | |
| | | <h3 class="drawer-title">ç³»ç»å¸å±é
ç½®</h3> |
| | | |
| | | <div class="drawer-item"> |
| | | <span>å¼å¯ TopNav</span> |
| | | <el-switch v-model="topNav" class="drawer-switch" /> |
| | | </div> |
| | | |
| | | <div class="drawer-item"> |
| | | <span>å¼å¯ Tags-Views</span> |
| | | <el-switch v-model="tagsView" class="drawer-switch" /> |
| | | </div> |
| | | |
| | | <div class="drawer-item"> |
| | | <span>åºå® Header</span> |
| | | <el-switch v-model="fixedHeader" class="drawer-switch" /> |
| | | </div> |
| | | |
| | | <div class="drawer-item"> |
| | | <span>æ¾ç¤º Logo</span> |
| | | <el-switch v-model="sidebarLogo" class="drawer-switch" /> |
| | | </div> |
| | | |
| | | <div class="drawer-item"> |
| | | <span>卿æ é¢</span> |
| | | <el-switch v-model="dynamicTitle" class="drawer-switch" /> |
| | | </div> |
| | | |
| | | <el-divider /> |
| | | |
| | | <el-button |
| | | size="small" |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-document-add" |
| | | @click="saveSetting" |
| | | >ä¿åé
ç½®</el-button |
| | | > |
| | | <el-button |
| | | size="small" |
| | | plain |
| | | icon="el-icon-refresh" |
| | | @click="resetSetting" |
| | | >éç½®é
ç½®</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-drawer> |
| | | </template> |
| | | |
| | | <script> |
| | | import ThemePicker from "@/components/ThemePicker"; |
| | | |
| | | export default { |
| | | components: { ThemePicker }, |
| | | data() { |
| | | return { |
| | | theme: this.$store.state.settings.theme, |
| | | sideTheme: this.$store.state.settings.sideTheme, |
| | | }; |
| | | }, |
| | | computed: { |
| | | visible: { |
| | | get() { |
| | | return this.$store.state.settings.showSettings; |
| | | }, |
| | | }, |
| | | fixedHeader: { |
| | | get() { |
| | | return this.$store.state.settings.fixedHeader; |
| | | }, |
| | | set(val) { |
| | | this.$store.dispatch("settings/changeSetting", { |
| | | key: "fixedHeader", |
| | | value: val, |
| | | }); |
| | | }, |
| | | }, |
| | | topNav: { |
| | | get() { |
| | | return this.$store.state.settings.topNav; |
| | | }, |
| | | set(val) { |
| | | this.$store.dispatch("settings/changeSetting", { |
| | | key: "topNav", |
| | | value: val, |
| | | }); |
| | | if (!val) { |
| | | this.$store.dispatch("app/toggleSideBarHide", false); |
| | | this.$store.commit( |
| | | "SET_SIDEBAR_ROUTERS", |
| | | this.$store.state.permission.defaultRoutes |
| | | ); |
| | | } |
| | | }, |
| | | }, |
| | | tagsView: { |
| | | get() { |
| | | return this.$store.state.settings.tagsView; |
| | | }, |
| | | set(val) { |
| | | this.$store.dispatch("settings/changeSetting", { |
| | | key: "tagsView", |
| | | value: val, |
| | | }); |
| | | }, |
| | | }, |
| | | sidebarLogo: { |
| | | get() { |
| | | return this.$store.state.settings.sidebarLogo; |
| | | }, |
| | | set(val) { |
| | | this.$store.dispatch("settings/changeSetting", { |
| | | key: "sidebarLogo", |
| | | value: val, |
| | | }); |
| | | }, |
| | | }, |
| | | dynamicTitle: { |
| | | get() { |
| | | return this.$store.state.settings.dynamicTitle; |
| | | }, |
| | | set(val) { |
| | | this.$store.dispatch("settings/changeSetting", { |
| | | key: "dynamicTitle", |
| | | value: val, |
| | | }); |
| | | }, |
| | | }, |
| | | }, |
| | | methods: { |
| | | themeChange(val) { |
| | | this.$store.dispatch("settings/changeSetting", { |
| | | key: "theme", |
| | | value: val, |
| | | }); |
| | | this.theme = val; |
| | | }, |
| | | handleTheme(val) { |
| | | this.$store.dispatch("settings/changeSetting", { |
| | | key: "sideTheme", |
| | | value: val, |
| | | }); |
| | | this.sideTheme = val; |
| | | }, |
| | | saveSetting() { |
| | | this.$modal.loading("æ£å¨ä¿åå°æ¬å°ï¼è¯·ç¨å..."); |
| | | //å卿¬å°æ°æ® |
| | | this.$cache.local.set( |
| | | "layout-setting", |
| | | `{ |
| | | "topNav":${this.topNav}, |
| | | "tagsView":${this.tagsView}, |
| | | "fixedHeader":${this.fixedHeader}, |
| | | "sidebarLogo":${this.sidebarLogo}, |
| | | "dynamicTitle":${this.dynamicTitle}, |
| | | "sideTheme":"${this.sideTheme}", |
| | | "theme":"${this.theme}" |
| | | }` |
| | | ); |
| | | setTimeout(this.$modal.closeLoading(), 1000); |
| | | }, |
| | | resetSetting() { |
| | | this.$modal.loading("æ£å¨æ¸
é¤è®¾ç½®ç¼åå¹¶å·æ°ï¼è¯·ç¨å..."); |
| | | this.$cache.local.remove("layout-setting"); |
| | | setTimeout("window.location.reload()", 1000); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .setting-drawer-content { |
| | | .setting-drawer-title { |
| | | margin-bottom: 12px; |
| | | color: rgba(0, 0, 0, 0.85); |
| | | font-size: 14px; |
| | | line-height: 22px; |
| | | font-weight: bold; |
| | | } |
| | | |
| | | .setting-drawer-block-checbox { |
| | | display: flex; |
| | | justify-content: flex-start; |
| | | align-items: center; |
| | | margin-top: 10px; |
| | | margin-bottom: 20px; |
| | | |
| | | .setting-drawer-block-checbox-item { |
| | | position: relative; |
| | | margin-right: 16px; |
| | | border-radius: 2px; |
| | | cursor: pointer; |
| | | |
| | | img { |
| | | width: 48px; |
| | | height: 48px; |
| | | } |
| | | |
| | | .setting-drawer-block-checbox-selectIcon { |
| | | position: absolute; |
| | | top: 0; |
| | | right: 0; |
| | | width: 100%; |
| | | height: 100%; |
| | | padding-top: 15px; |
| | | padding-left: 24px; |
| | | color: #1890ff; |
| | | font-weight: 700; |
| | | font-size: 14px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .drawer-container { |
| | | padding: 20px; |
| | | font-size: 14px; |
| | | line-height: 1.5; |
| | | word-wrap: break-word; |
| | | |
| | | .drawer-title { |
| | | margin-bottom: 12px; |
| | | color: rgba(0, 0, 0, 0.85); |
| | | font-size: 14px; |
| | | line-height: 22px; |
| | | } |
| | | |
| | | .drawer-item { |
| | | color: rgba(0, 0, 0, 0.65); |
| | | font-size: 14px; |
| | | padding: 12px 0; |
| | | } |
| | | |
| | | .drawer-switch { |
| | | float: right; |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div |
| | | class="sidebar-logo-container" |
| | | :class="{ collapse: collapse }" |
| | | :style="{ |
| | | backgroundColor: |
| | | sideTheme === 'theme-dark' |
| | | ? variables.menuBackground |
| | | : variables.menuLightBackground, |
| | | }" |
| | | > |
| | | <transition name="sidebarLogoFade"> |
| | | <router-link |
| | | v-if="collapse" |
| | | key="collapse" |
| | | class="sidebar-logo-link" |
| | | to="/" |
| | | > |
| | | <img v-if="logo" :src="logo" class="sidebar-logo" /> |
| | | <h1 |
| | | v-else |
| | | class="sidebar-title" |
| | | :style="{ |
| | | color: |
| | | sideTheme === 'theme-dark' |
| | | ? variables.logoTitleColor |
| | | : variables.logoLightTitleColor, |
| | | }" |
| | | > |
| | | {{ title }} |
| | | </h1> |
| | | </router-link> |
| | | <router-link v-else key="expand" class="sidebar-logo-link" to="/"> |
| | | <img v-if="logo" :src="logo" class="sidebar-logo" /> |
| | | <h1 |
| | | class="sidebar-title" |
| | | :style="{ |
| | | color: |
| | | sideTheme === 'theme-dark' |
| | | ? variables.logoTitleColor |
| | | : variables.logoLightTitleColor, |
| | | }" |
| | | > |
| | | {{ title }} |
| | | </h1> |
| | | </router-link> |
| | | </transition> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import logoImg from "@/assets/logo/logo.png"; |
| | | import variables from "@/assets/styles/variables.scss"; |
| | | |
| | | export default { |
| | | name: "SidebarLogo", |
| | | props: { |
| | | collapse: { |
| | | type: Boolean, |
| | | required: true, |
| | | }, |
| | | }, |
| | | computed: { |
| | | variables() { |
| | | return variables; |
| | | }, |
| | | sideTheme() { |
| | | return this.$store.state.settings.sideTheme; |
| | | }, |
| | | }, |
| | | data() { |
| | | return { |
| | | title: "æºæ
§é访管çç³»ç»", |
| | | logo: logoImg, |
| | | }; |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .sidebarLogoFade-enter-active { |
| | | transition: opacity 1.5s; |
| | | } |
| | | |
| | | .sidebarLogoFade-enter, |
| | | .sidebarLogoFade-leave-to { |
| | | opacity: 0; |
| | | } |
| | | |
| | | .sidebar-logo-container { |
| | | position: relative; |
| | | width: 100%; |
| | | height: 50px; |
| | | line-height: 50px; |
| | | background: #2b2f3a; |
| | | text-align: center; |
| | | overflow: hidden; |
| | | |
| | | & .sidebar-logo-link { |
| | | height: 100%; |
| | | width: 100%; |
| | | |
| | | & .sidebar-logo { |
| | | width: 42px; |
| | | height: 42px; |
| | | vertical-align: middle; |
| | | margin-right: 12px; |
| | | } |
| | | |
| | | & .sidebar-title { |
| | | display: inline-block; |
| | | margin: 0; |
| | | color: #fff; |
| | | font-weight: 600; |
| | | line-height: 50px; |
| | | font-size: 16px; |
| | | font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif; |
| | | vertical-align: middle; |
| | | } |
| | | } |
| | | |
| | | &.collapse { |
| | | .sidebar-logo { |
| | | margin-right: 0px; |
| | | } |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div |
| | | :class="{ 'has-logo': showLogo }" |
| | | :style="{ |
| | | backgroundColor: |
| | | settings.sideTheme === 'theme-dark' |
| | | ? variables.menuBackground |
| | | : variables.menuLightBackground, |
| | | }" |
| | | > |
| | | <logo v-if="showLogo" :collapse="isCollapse" /> |
| | | <el-scrollbar :class="settings.sideTheme" wrap-class="scrollbar-wrapper"> |
| | | <el-menu |
| | | :default-active="activeMenu" |
| | | :collapse="isCollapse" |
| | | :background-color=" |
| | | settings.sideTheme === 'theme-dark' |
| | | ? variables.menuBackground |
| | | : variables.menuLightBackground |
| | | " |
| | | :text-color=" |
| | | settings.sideTheme === 'theme-dark' |
| | | ? variables.menuColor |
| | | : variables.menuLightColor |
| | | " |
| | | :unique-opened="true" |
| | | :active-text-color="variables.menuActiveText" |
| | | :collapse-transition="false" |
| | | mode="vertical" |
| | | > |
| | | <sidebar-item |
| | | v-for="(route, index) in sidebarRouters" |
| | | :key="route.path + index" |
| | | :item="route" |
| | | :base-path="route.path" |
| | | /> |
| | | </el-menu> |
| | | </el-scrollbar> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { mapGetters, mapState } from "vuex"; |
| | | import Logo from "./Logo"; |
| | | import SidebarItem from "./SidebarItem"; |
| | | import variables from "@/assets/styles/variables.scss"; |
| | | |
| | | export default { |
| | | components: { SidebarItem, Logo }, |
| | | computed: { |
| | | ...mapState(["settings"]), |
| | | ...mapGetters(["sidebarRouters", "sidebar"]), |
| | | activeMenu() { |
| | | const route = this.$route; |
| | | const { meta, path } = route; |
| | | // if set path, the sidebar will highlight the path you set |
| | | if (meta.activeMenu) { |
| | | return meta.activeMenu; |
| | | } |
| | | return path; |
| | | }, |
| | | showLogo() { |
| | | return this.$store.state.settings.sidebarLogo; |
| | | }, |
| | | variables() { |
| | | return variables; |
| | | }, |
| | | isCollapse() { |
| | | return !this.sidebar.opened; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .el-menu-demo { |
| | | font-size: 28px; |
| | | } |
| | | </style> |
ÎļþÃû´Ó ruoyi-ui/src/main.js ÐÞ¸Ä |
| | |
| | | import Vue from 'vue' |
| | | |
| | | import Cookies from 'js-cookie' |
| | | import * as echarts from "echarts"; |
| | | |
| | | import Element from 'element-ui' |
| | | import './assets/styles/element-variables.scss' |
| | |
| | | import VueMeta from 'vue-meta' |
| | | // åå
¸æ°æ®ç»ä»¶ |
| | | import DictData from '@/components/DictData' |
| | | // ç»ä»¶å°è£
éæ |
| | | import components from './components' |
| | | // 注åè¿æ»¤å¨ |
| | | // èªå®ä¹æä»¤ |
| | | import * as directives from './directives' |
| | | import * as filters from './filters' |
| | | for(let key in filters){ |
| | | Vue.filter(key, filters[key]) |
| | | } |
| | | |
| | | // å
¨å±æ¹æ³æè½½ |
| | | |
| | | Vue.prototype.getDicts = getDicts |
| | | Vue.prototype.getConfigKey = getConfigKey |
| | | Vue.prototype.parseTime = parseTime |
| | |
| | | Vue.prototype.selectDictLabels = selectDictLabels |
| | | Vue.prototype.download = download |
| | | Vue.prototype.handleTree = handleTree |
| | | |
| | | // å
¨å±ç»ä»¶æè½½ |
| | | Vue.component('DictTag', DictTag) |
| | | Vue.component('Pagination', Pagination) |
| | |
| | | Vue.component('ImageUpload', ImageUpload) |
| | | Vue.component('ImagePreview', ImagePreview) |
| | | |
| | | |
| | | // å°è£
èªå®ä¹æä»¤ |
| | | for(let key in directives) |
| | | Vue.directive(key, directives[key]) |
| | | Vue.use(directive) |
| | | Vue.use(plugins) |
| | | Vue.use(VueMeta) |
| | | DictData.install() |
| | | Vue.use(components) |
| | | |
| | | /** |
| | | * If you don't want to use mock-server |
ÎļþÃû´Ó ruoyi-ui/src/store/modules/settings.js ÐÞ¸Ä |
| | |
| | | const storageSetting = JSON.parse(localStorage.getItem('layout-setting')) || '' |
| | | const state = { |
| | | title: '', |
| | | theme: storageSetting.theme || '#409EFF', |
| | | theme: storageSetting.theme , |
| | | sideTheme: storageSetting.sideTheme || sideTheme, |
| | | showSettings: showSettings, |
| | | topNav: storageSetting.topNav === undefined ? topNav : storageSetting.topNav, |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div> |
| | | <UploadExcel :deforeUpload="excelSuccess" :onSuccess="onSuccess" /> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | //çå¾
apiæ¥å£ |
| | | // import { importEmployee } from "@/api/index"; |
| | | import employees from "@/constant/employees"; |
| | | import formatTime from "@/filters/index"; |
| | | const { importMapKeyPath } = employees; |
| | | export default { |
| | | data() { |
| | | return {}; |
| | | }, |
| | | |
| | | created() {}, |
| | | |
| | | methods: { |
| | | // ä¸ä¼ å触å |
| | | excelSuccess({ name }) { |
| | | if (!name.endsWith(".xlsx")) { |
| | | return this.$message("è¯·éæ©xlsxæä»¶"); |
| | | } |
| | | return true; |
| | | }, |
| | | // è§£ææåå触å |
| | | async onSuccess({ results, header }) { |
| | | const neWArr = results.map((item) => { |
| | | const obj = {}; |
| | | for (let key in importMapKeyPath) { |
| | | if (key === "å
¥èæ¶é´" || key === "è½¬æ£æ¶é´") { |
| | | // excelæ¶é´æ³ |
| | | const timestamp = item[key]; |
| | | // è½¬æ ¼å¼ï¼å¹¶å¯¹æ¯æéªå·®æ¶é´ |
| | | const date = new Date((timestamp - 1) * 24 * 3600000); |
| | | date.setFullYear(data.setFullYear() - 70); |
| | | obj[importMapKeyPath[key]] = formatTime(date); |
| | | } else { |
| | | obj[importMapKeyPath[key]] = item[key]; |
| | | } |
| | | } |
| | | return obj; |
| | | }); |
| | | // await importEmployee(neWArr); |
| | | this.$message.success("导å
¥æå"); |
| | | this.$router.go(-1); |
| | | console.log(neWArr); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="less" scoped></style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="Questionnairemanagement"> |
| | | <!-- 左侧æ --> |
| | | <div class="sidecolumn"> |
| | | <div style="height: 200px"> |
| | | <el-steps direction="vertical" :active="Editprogress"> |
| | | <el-step title="åºç¡ä¿¡æ¯è®¾ç½®"></el-step> |
| | | <el-step title="宣æå
容"></el-step> |
| | | </el-steps> |
| | | </div> |
| | | </div> |
| | | <!-- å³ä¾§æ°æ® --> |
| | | <div class="leftvlue"> |
| | | <!-- åºæ¬ä¿¡æ¯ --> |
| | | <div v-if="Editprogress == 1"> |
| | | <div class="leftvlue-jbxx"> |
| | | åºæ¬ä¿¡æ¯<span>å½åçæ¬:{{ currentVersion }}</span> |
| | | </div> |
| | | <el-form |
| | | :model="ruleForm" |
| | | :rules="rules" |
| | | ref="ruleForm" |
| | | label-width="100px" |
| | | class="demo-ruleForm" |
| | | > |
| | | <el-form-item label="宣æåç§°" prop="name"> |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="宣æå½¢å¼" prop="name"> |
| | | <el-select v-model="ruleForm.shape" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in xjxsoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="宣æåç±»" prop="region"> |
| | | <el-select |
| | | v-model="ruleForm.classify" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="è¯·éæ©åç±»" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="éç¨ç¾ç
" prop="sickness"> |
| | | <el-select |
| | | v-model="ruleForm.sickness" |
| | | filterable |
| | | placeholder="è¯·éæ©" |
| | | > |
| | | <el-option |
| | | v-for="item in sicknessoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ´»å¨å½¢å¼" prop="desc"> |
| | | <el-input |
| | | :rows="4" |
| | | type="textarea" |
| | | v-model="ruleForm.desc" |
| | | maxlength="400" |
| | | show-word-limit |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="success" @click="submitForm('ruleForm')" |
| | | >ä¸ä¸æ¥</el-button |
| | | > |
| | | <el-button @click="resetForm('ruleForm')">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <!-- 宣æå
容 --> |
| | | <div v-if="Editprogress == 2"> |
| | | <div class="leftvlue-jbxx">宣æå
容</div> |
| | | <el-form |
| | | :model="ruleForm" |
| | | :rules="rules" |
| | | ref="ruleForm" |
| | | label-width="100px" |
| | | class="demo-ruleForm" |
| | | > |
| | | <el-form-item label="宣æä»ç»" prop="desc"> |
| | | <el-cascader |
| | | class="demo-cascader" |
| | | v-model="ruleForm.templatevalue" |
| | | :options="asoptions" |
| | | :props="{ expandTrigger: 'hover' }" |
| | | ></el-cascader> |
| | | <el-select v-model="ruleForm.data2" placeholder="æäº¤æç¤º"> |
| | | <el-option |
| | | v-for="item in asoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | <div style="display: flex; margin-top: 20px"> |
| | | <div class="PreviewTemplate" @click="PreviewTemplate()"> |
| | | é¢è§æ¨¡ç |
| | | </div> |
| | | <el-button type="primary">确认å¼ç¨</el-button> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="æ´»å¨å½¢å¼" prop="desc"> |
| | | <el-input type="textarea" v-model="ruleForm.desc"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ´»å¨å½¢å¼" prop="desc"> |
| | | <el-input type="textarea" v-model="ruleForm.desc"></el-input> |
| | | <div class="addtopic"> |
| | | <el-select |
| | | v-model="addvalue" |
| | | @change="changeaddtopic" |
| | | class="addtopic-input" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | |
| | | <div class="presentation"> |
| | | <div class="presentation-left"> |
| | | <el-table v-loading="loading" :data="userList"> |
| | | <el-table-column |
| | | label="åºå·" |
| | | align="center" |
| | | key="userid" |
| | | prop="userid" |
| | | /> |
| | | <el-table-column |
| | | label="é¢ç®" |
| | | align="center" |
| | | key="userName" |
| | | prop="userName" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="æä½" |
| | | align="center" |
| | | width="300" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <!-- <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="goQRCode(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | > |
| | | <span class="button-text" |
| | | ><i class="el-icon-edit"></i>äºç»´ç </span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="ViewQuestionnaire(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textck" |
| | | ><i class="el-icon-edit"></i>æ¥ç</span |
| | | ></el-button |
| | | > --> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textxg" |
| | | ><i class="el-icon-scissors"></i>ä¿®æ¹</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:user:remove']" |
| | | ><span class="button-textsc" |
| | | ><i class="el-icon-delete"></i>å é¤</span |
| | | ></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" |
| | | /> |
| | | </div> |
| | | <div class="presentation-right"> |
| | | <div class="headline">é¢ç®è®¾ç½®è¯¦æ
</div> |
| | | <div>é¢ç®æ é¢ï¼<span>è¿å®¶æºææä¹æ ·</span></div> |
| | | <div>æ¯å¦å¿
çï¼<span>æ¯</span> æ¯å¦éèï¼<span>å¦</span></div> |
| | | <div class="headline">é项设置</div> |
| | | <div> |
| | | <p>é项1:<span>å»çæºæ</span></p> |
| | | <p> |
| | | å¡«åæç»ï¼<span>æ </span> å¼å¸¸é项ï¼<span>æ </span> |
| | | åå¼ï¼<span>3</span> |
| | | </p> |
| | | <p>éä¸æç¤ºï¼<span>è¿ä¸ªé¢æç¹é¾è¯·æ³¨æ</span></p> |
| | | <p>éä¸è·³è½¬ï¼<span>æ </span></p> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="success" @click="submitForm('ruleForm')" |
| | | >ç«å³å建</el-button |
| | | > |
| | | <el-button type="primary" @click="laststep()">ä¸ä¸æ¥</el-button> |
| | | <el-button @click="resetForm('ruleForm')">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | sidecolumnrabs: "left", //æ¹å |
| | | Editprogress: 1, //ç¼è¾è¿åº¦ |
| | | currentVersion: "1.2.3", //å½åçæ¬ |
| | | loading: false, // é®ç½©å± |
| | | drawer: false, //æ§å¶å±å¼ |
| | | radio: "false", //åéé¢éä¸ |
| | | radios: [], //å¤éé¢éä¸ |
| | | radioas: "", //填空é¢çæ¡ |
| | | // æ»æ¡æ° |
| | | total: 1, |
| | | ruleForm: { |
| | | name: "", |
| | | shape: "", |
| | | classify: "", |
| | | region: "", |
| | | date1: "", |
| | | date2: "", |
| | | delivery: false, |
| | | type: [], |
| | | resource: "", |
| | | desc: "", |
| | | templatevalue: "", |
| | | data2: "", |
| | | }, |
| | | rules: {}, |
| | | rulesa: { |
| | | name: [ |
| | | { required: true, message: "请è¾å
¥æ´»å¨åç§°", trigger: "blur" }, |
| | | { min: 3, max: 5, message: "é¿åº¦å¨ 3 å° 5 个å符", trigger: "blur" }, |
| | | ], |
| | | region: [ |
| | | { required: true, message: "è¯·éæ©æ´»å¨åºå", trigger: "change" }, |
| | | ], |
| | | date1: [ |
| | | { |
| | | type: "date", |
| | | required: true, |
| | | message: "è¯·éæ©æ¥æ", |
| | | trigger: "change", |
| | | }, |
| | | ], |
| | | date2: [ |
| | | { |
| | | type: "date", |
| | | required: true, |
| | | message: "è¯·éæ©æ¶é´", |
| | | trigger: "change", |
| | | }, |
| | | ], |
| | | type: [ |
| | | { |
| | | type: "array", |
| | | required: true, |
| | | message: "请è³å°éæ©ä¸ä¸ªæ´»å¨æ§è´¨", |
| | | trigger: "change", |
| | | }, |
| | | ], |
| | | resource: [ |
| | | { required: true, message: "è¯·éæ©æ´»å¨èµæº", trigger: "change" }, |
| | | ], |
| | | desc: [{ required: true, message: "è¯·å¡«åæ´»å¨å½¢å¼", trigger: "blur" }], |
| | | }, |
| | | options: [ |
| | | { |
| | | value: "é项1", |
| | | label: "ç¾ç
宣æ", |
| | | }, |
| | | { |
| | | value: "é项2", |
| | | label: "å
¥é¢å®£æ", |
| | | }, |
| | | { |
| | | value: "é项3", |
| | | label: "ææ¯å®£æ", |
| | | }, |
| | | { |
| | | value: "é项4", |
| | | label: "æ¤ç宣æ", |
| | | }, |
| | | ], |
| | | xjxsoptions: [ |
| | | { |
| | | value: "é项1", |
| | | label: "徿", |
| | | }, |
| | | { |
| | | value: "é项2", |
| | | label: "è§é¢", |
| | | }, |
| | | { |
| | | value: "é项3", |
| | | label: "é³é¢", |
| | | }, |
| | | ], |
| | | sicknessoptions: [ |
| | | { |
| | | value: 1, |
| | | label: "é«è¡å", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "å¿èç
", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "ç³å°¿ç
", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "èæ¤ç", |
| | | }, |
| | | ], |
| | | asoptions: [ |
| | | { |
| | | value: "zhinan", |
| | | label: "æå", |
| | | children: [ |
| | | { |
| | | value: "shejiyuanze", |
| | | label: "设计åå", |
| | | children: [ |
| | | { |
| | | value: "yizhi", |
| | | label: "ä¸è´", |
| | | }, |
| | | { |
| | | value: "fankui", |
| | | label: "åé¦", |
| | | }, |
| | | { |
| | | value: "xiaolv", |
| | | label: "æç", |
| | | }, |
| | | { |
| | | value: "kekong", |
| | | label: "坿§", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | value: "daohang", |
| | | label: "导èª", |
| | | children: [ |
| | | { |
| | | value: "cexiangdaohang", |
| | | label: "ä¾§å导èª", |
| | | }, |
| | | { |
| | | value: "dingbudaohang", |
| | | label: "é¡¶é¨å¯¼èª", |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | value: "zujian", |
| | | label: "ç»ä»¶", |
| | | children: [ |
| | | { |
| | | value: "basic", |
| | | label: "Basic", |
| | | children: [ |
| | | { |
| | | value: "layout", |
| | | label: "Layout å¸å±", |
| | | }, |
| | | { |
| | | value: "color", |
| | | label: "Color è²å½©", |
| | | }, |
| | | { |
| | | value: "typography", |
| | | label: "Typography åä½", |
| | | }, |
| | | { |
| | | value: "icon", |
| | | label: "Icon 徿 ", |
| | | }, |
| | | { |
| | | value: "button", |
| | | label: "Button æé®", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | value: "form", |
| | | label: "Form", |
| | | children: [ |
| | | { |
| | | value: "radio", |
| | | label: "Radio åéæ¡", |
| | | }, |
| | | { |
| | | value: "checkbox", |
| | | label: "Checkbox å¤éæ¡", |
| | | }, |
| | | { |
| | | value: "input", |
| | | label: "Input è¾å
¥æ¡", |
| | | }, |
| | | { |
| | | value: "input-number", |
| | | label: "InputNumber 计æ°å¨", |
| | | }, |
| | | { |
| | | value: "select", |
| | | label: "Select éæ©å¨", |
| | | }, |
| | | { |
| | | value: "cascader", |
| | | label: "Cascader 级èéæ©å¨", |
| | | }, |
| | | { |
| | | value: "switch", |
| | | label: "Switch å¼å
³", |
| | | }, |
| | | { |
| | | value: "slider", |
| | | label: "Slider æ»å", |
| | | }, |
| | | { |
| | | value: "time-picker", |
| | | label: "TimePicker æ¶é´éæ©å¨", |
| | | }, |
| | | { |
| | | value: "date-picker", |
| | | label: "DatePicker æ¥æéæ©å¨", |
| | | }, |
| | | { |
| | | value: "datetime-picker", |
| | | label: "DateTimePicker æ¥ææ¶é´éæ©å¨", |
| | | }, |
| | | { |
| | | value: "upload", |
| | | label: "Upload ä¸ä¼ ", |
| | | }, |
| | | { |
| | | value: "rate", |
| | | label: "Rate è¯å", |
| | | }, |
| | | { |
| | | value: "form", |
| | | label: "Form 表å", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | value: "data", |
| | | label: "Data", |
| | | children: [ |
| | | { |
| | | value: "table", |
| | | label: "Table è¡¨æ ¼", |
| | | }, |
| | | { |
| | | value: "tag", |
| | | label: "Tag æ ç¾", |
| | | }, |
| | | { |
| | | value: "progress", |
| | | label: "Progress è¿åº¦æ¡", |
| | | }, |
| | | { |
| | | value: "tree", |
| | | label: "Tree æ å½¢æ§ä»¶", |
| | | }, |
| | | { |
| | | value: "pagination", |
| | | label: "Pagination å页", |
| | | }, |
| | | { |
| | | value: "badge", |
| | | label: "Badge æ è®°", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | value: "notice", |
| | | label: "Notice", |
| | | children: [ |
| | | { |
| | | value: "alert", |
| | | label: "Alert è¦å", |
| | | }, |
| | | { |
| | | value: "loading", |
| | | label: "Loading å è½½", |
| | | }, |
| | | { |
| | | value: "message", |
| | | label: "Message æ¶æ¯æç¤º", |
| | | }, |
| | | { |
| | | value: "message-box", |
| | | label: "MessageBox å¼¹æ¡", |
| | | }, |
| | | { |
| | | value: "notification", |
| | | label: "Notification éç¥", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | value: "navigation", |
| | | label: "Navigation", |
| | | children: [ |
| | | { |
| | | value: "menu", |
| | | label: "NavMenu 导èªèå", |
| | | }, |
| | | { |
| | | value: "tabs", |
| | | label: "Tabs æ ç¾é¡µ", |
| | | }, |
| | | { |
| | | value: "breadcrumb", |
| | | label: "Breadcrumb é¢å
å±", |
| | | }, |
| | | { |
| | | value: "dropdown", |
| | | label: "Dropdown 䏿èå", |
| | | }, |
| | | { |
| | | value: "steps", |
| | | label: "Steps æ¥éª¤æ¡", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | value: "others", |
| | | label: "Others", |
| | | children: [ |
| | | { |
| | | value: "dialog", |
| | | label: "Dialog å¯¹è¯æ¡", |
| | | }, |
| | | { |
| | | value: "tooltip", |
| | | label: "Tooltip æåæç¤º", |
| | | }, |
| | | { |
| | | value: "popover", |
| | | label: "Popover å¼¹åºæ¡", |
| | | }, |
| | | { |
| | | value: "card", |
| | | label: "Card å¡ç", |
| | | }, |
| | | { |
| | | value: "carousel", |
| | | label: "Carousel 走马ç¯", |
| | | }, |
| | | { |
| | | value: "collapse", |
| | | label: "Collapse æå 颿¿", |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | value: "ziyuan", |
| | | label: "èµæº", |
| | | children: [ |
| | | { |
| | | value: "axure", |
| | | label: "Axure Components", |
| | | }, |
| | | { |
| | | value: "sketch", |
| | | label: "Sketch Templates", |
| | | }, |
| | | { |
| | | value: "jiaohu", |
| | | label: "ç»ä»¶äº¤äºææ¡£", |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | valssu: [ |
| | | { |
| | | idd: 1, |
| | | wssd: "ä½ æè¿æä¹æ ·", |
| | | sdadd: ["sss", "ssccss", "ssaas", "ss"], |
| | | }, |
| | | ], |
| | | addvalue: "æ·»å é¢ç®", |
| | | // é¢ç®è¡¨æ ¼æ°æ® |
| | | userList: [ |
| | | { |
| | | userid: "1", |
| | | userName: "ä¸å·å®£æ", |
| | | }, |
| | | { |
| | | userid: "2", |
| | | userName: "äºå·å®£æ", |
| | | }, |
| | | { |
| | | userid: "3", |
| | | userName: "ä¸å·å®£æ", |
| | | }, |
| | | { |
| | | userid: "4", |
| | | userName: "åå·å®£æ", |
| | | }, |
| | | ], |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | userName: undefined, |
| | | phonenumber: undefined, |
| | | status: undefined, |
| | | deptId: undefined, |
| | | IDnumber: undefined, |
| | | }, |
| | | }; |
| | | }, |
| | | |
| | | created() {}, |
| | | |
| | | methods: { |
| | | submitForm(formName) { |
| | | if (this.Editprogress <= 3) { |
| | | return this.Editprogress++; |
| | | } |
| | | this.rules = this.rulesa; |
| | | // æäº¤ |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | alert("submit!"); |
| | | } else { |
| | | console.log("error submit!!"); |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | /** æ¥è¯¢é¢ç®å表 */ |
| | | getList() { |
| | | // this.loading = true; |
| | | listUser().then((response) => { |
| | | console.log(response); |
| | | // this.userList = response.data; |
| | | // this.total = response.total; |
| | | // this.loading = false; |
| | | console.log(this.userList); |
| | | }); |
| | | // const { rows } = await listUser(); |
| | | // console.log(rows); |
| | | // this.list = rows; |
| | | }, |
| | | changeaddtopic(val) { |
| | | console.log(11); |
| | | console.log(val); |
| | | this.addvalue = "æ·»å é¢ç®"; |
| | | }, |
| | | // é¢è§æ¨¡ç |
| | | PreviewTemplate() { |
| | | this.drawer = true; |
| | | }, |
| | | laststep() { |
| | | this.Editprogress--; |
| | | }, |
| | | resetForm(formName) { |
| | | this.$refs[formName].resetFields(); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .Questionnairemanagement { |
| | | display: flex; |
| | | } |
| | | .sidecolumn { |
| | | width: 300px; |
| | | min-height: 100vh; |
| | | text-align: center; |
| | | // display: flex; |
| | | // margin-top: 20px; |
| | | margin: 20px; |
| | | margin-bottom: 0; |
| | | padding: 30px; |
| | | background: #edf1f7; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | } |
| | | .leftvlue { |
| | | // display: flex; |
| | | // flex: 1; |
| | | width: 80%; |
| | | margin-top: 20px; |
| | | // margin: 20px; |
| | | padding: 30px; |
| | | background: #ffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .mulsz { |
| | | font-size: 20px; |
| | | } |
| | | .leftvlue-jbxx { |
| | | margin-bottom: 50px; |
| | | font-size: 20px; |
| | | span { |
| | | position: absolute; |
| | | right: 80px; |
| | | } |
| | | } |
| | | .demo-cascader { |
| | | margin-right: 20px; |
| | | } |
| | | .PreviewTemplate { |
| | | color: #02a7f0; |
| | | cursor: pointer; |
| | | font-size: 20px; |
| | | margin: 0 20px; |
| | | } |
| | | } |
| | | .preview-left { |
| | | margin: 20px; |
| | | // margin: 20px; |
| | | padding: 30px; |
| | | background: #ffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .topic-dev { |
| | | margin-bottom: 25px; |
| | | font-size: 20px !important; |
| | | .dev-text { |
| | | margin-bottom: 10px; |
| | | } |
| | | } |
| | | } |
| | | .addtopic { |
| | | margin-top: 30px; |
| | | } |
| | | .presentation { |
| | | margin: 20px 0; |
| | | display: flex; |
| | | .presentation-left { |
| | | width: 50%; |
| | | height: 500px; |
| | | .button-textxg { |
| | | color: #024df0; |
| | | } |
| | | .button-textsc { |
| | | color: #f52727; |
| | | } |
| | | } |
| | | .presentation-right { |
| | | width: 50%; |
| | | height: 500px; |
| | | padding: 20px; |
| | | font-size: 18px; |
| | | border: 1px solid #909091; |
| | | span { |
| | | padding: 0 35px; |
| | | margin-right: 10px; |
| | | border-bottom: 1px solid #909091; |
| | | } |
| | | .headline { |
| | | font-size: 20px; |
| | | border-left: 3px solid #41a1be; |
| | | padding-left: 5px; |
| | | margin: 15px 0; |
| | | } |
| | | } |
| | | } |
| | | ::v-deep .addtopic-input { |
| | | input { |
| | | background: #02a7f0; |
| | | color: #edf1f7; |
| | | width: 150px; |
| | | } |
| | | } |
| | | ::v-deep.el-step.is-vertical .el-step__title { |
| | | font-size: 25px; |
| | | } |
| | | ::v-deep.el-input--medium { |
| | | font-size: 24px !important; |
| | | } |
| | | ::v-deep.ruleFormaa.el-select { |
| | | display: inline-block; |
| | | position: relative; |
| | | width: 700px; |
| | | } |
| | | .el-select__tags { |
| | | font-size: 20px; |
| | | max-width: 888px !important; |
| | | } |
| | | ::v-deep.el-radio__inner { |
| | | width: 22px; |
| | | height: 22px; |
| | | } |
| | | // ::v-deep.topic-dev.el-radio__label { |
| | | // font-size: 24px; |
| | | // } |
| | | ::v-deep.el-radio-group { |
| | | span { |
| | | font-size: 24px; |
| | | } |
| | | } |
| | | ::v-deep.el-checkbox-group { |
| | | span { |
| | | font-size: 24px; |
| | | } |
| | | } |
| | | // ::v-deep.el-form-item--medium .el-form-item__content { |
| | | // line-height: 36px; |
| | | // display: flex; |
| | | // } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="examineemanagement"> |
| | | <!-- 左侧æ --> |
| | | |
| | | <div class="sidecolumn"> |
| | | <div class="sidecolumn-top"> |
| | | <div class="top-wj">åå²çæ¬</div> |
| | | <!-- <div class="top-tj" @click="dialogFormVisible = true">+æ·»å </div> --> |
| | | </div> |
| | | <div class="bottom-fl"> |
| | | <el-tabs tab-position="right" v-model="activeName"> |
| | | <el-tab-pane |
| | | class="tab-paness" |
| | | :key="index" |
| | | v-for="(item, index) in editableTabs" |
| | | > |
| | | <div class="mulsz" slot="label"> |
| | | {{ item.versionsac |
| | | }}<span style="margin-left: 30px">{{ |
| | | item.startUsing ? "å¯ç¨" : "ç¦ç¨" |
| | | }}</span> |
| | | </div> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </div> |
| | | <!-- å³ä¾§æ°æ® --> |
| | | |
| | | <div class="leftvlue"> |
| | | <div v-if="activeName == '0'"> |
| | | <div class="examine-top"> |
| | | <span>ç¼è¾äººï¼{{ basicInformation.name }}</span> |
| | | <span>ç¼è¾æ¶é´ï¼{{ basicInformation.day }}</span> |
| | | <span class="ewmyl">äºç»´ç é¢è§</span> |
| | | </div> |
| | | <!-- åºç¡ä¿¡æ¯ --> |
| | | <div class="examine-jic"> |
| | | <div class="headline">åºç¡ä¿¡æ¯</div> |
| | | <div class="jic-value"> |
| | | <div> |
| | | 宣æåç§°ï¼{{ basicInformation.wname |
| | | }}<span>éç¨ç¾ç
ï¼{{ basicInformation.jbname }}</span> |
| | | </div> |
| | | <div> |
| | | 宣æå½¢å¼ï¼{{ basicInformation.wname |
| | | }}<span>éç¨åç±»ï¼{{ basicInformation.jbname }}</span> |
| | | </div> |
| | | <div>表åæè¿°ï¼{{ basicInformation.miaosname }}</div> |
| | | </div> |
| | | </div> |
| | | <!-- 宣æé¢è§ --> |
| | | <div class="examine-jic"> |
| | | <div class="headline">宣æå
容</div> |
| | | <div class="jic-value"> |
| | | <div> |
| | | 宣æä»ç»ï¼<span class="wenjuanjs" |
| | | >é常好é常好é常好é常好é常好é常好é常好é常好</span |
| | | > |
| | | </div> |
| | | </div> |
| | | <div class="preview-left"> |
| | | <!-- åé --> |
| | | <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> |
| | | <div class="dev-text"> |
| | | {{ item.idd }}ã[åé]  <span>{{ item.wssd }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio |
| | | v-for="(items, index) in item.sdadd" |
| | | :key="index" |
| | | :label="index" |
| | | >{{ items }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | | </div> |
| | | </div> |
| | | <!-- å¤é --> |
| | | <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> |
| | | <div class="dev-text"> |
| | | {{ item.idd }}ã[å¤é]  <span>{{ item.wssd }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-checkbox-group v-model="radios"> |
| | | <el-checkbox |
| | | v-for="(items, index) in item.sdadd" |
| | | :key="index" |
| | | :label="index" |
| | | > |
| | | {{ items }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </div> |
| | | </div> |
| | | <!-- 填空 --> |
| | | <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> |
| | | <div class="dev-text"> |
| | | {{ item.idd }}ã[填空]  <span>{{ item.wssd }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-input placeholder="请è¾å
¥çæ¡" v-model="radioas" clearable> |
| | | </el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div v-else-if="activeName == '1'">bbb</div> |
| | | <div v-else-if="activeName == '2'">ccc</div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | activeName: "0", |
| | | radios: [], //å¤éé¢éä¸ |
| | | |
| | | basicInformation: { |
| | | name: "èå´", |
| | | day: "2023å¹´12æ11æ¥16æ¶12å11ç§", |
| | | wname: "大大大", |
| | | jbname: "å°å°å°", |
| | | miaosname: "é常好大大大", |
| | | }, |
| | | valssu: [ |
| | | { |
| | | idd: 1, |
| | | wssd: "ä½ æè¿æä¹æ ·", |
| | | sdadd: ["sss", "ssccss", "ssaas", "ss"], |
| | | }, |
| | | ], |
| | | editableTabs: [ |
| | | { |
| | | versionsac: "1.0.3", |
| | | startUsing: true, |
| | | }, |
| | | { |
| | | versionsac: "1.0.2", |
| | | startUsing: false, |
| | | }, |
| | | { |
| | | versionsac: "1.0.1", |
| | | startUsing: false, |
| | | }, |
| | | ], |
| | | }; |
| | | }, |
| | | |
| | | created() {}, |
| | | |
| | | methods: { |
| | | handleClick() {}, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .examineemanagement { |
| | | display: flex; |
| | | .sidecolumn { |
| | | width: 300px; |
| | | min-height: 100vh; |
| | | text-align: center; |
| | | // display: flex; |
| | | margin-top: 20px; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | background: #edf1f7; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .sidecolumn-top { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | .top-wj { |
| | | font-size: 20px; |
| | | } |
| | | .top-tj { |
| | | font-size: 18px; |
| | | |
| | | color: rgb(0, 89, 255); |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | .center-ss { |
| | | margin-top: 30px; |
| | | .input-with-select { |
| | | height: 40px !important; |
| | | } |
| | | } |
| | | .bottom-fl { |
| | | margin-top: 30px; |
| | | display: center !important; |
| | | } |
| | | } |
| | | .leftvlue { |
| | | width: 80%; |
| | | margin-top: 20px; |
| | | // margin: 20px; |
| | | padding: 30px; |
| | | background: #ffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .mulsz { |
| | | font-size: 20px; |
| | | span { |
| | | margin-left: 30px; |
| | | } |
| | | } |
| | | .examine-top { |
| | | font-size: 20px; |
| | | margin-bottom: 40px; |
| | | span { |
| | | margin-right: 30px; |
| | | } |
| | | .ewmyl { |
| | | color: rgb(0, 81, 255); |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | .examine-jic { |
| | | .headline { |
| | | font-size: 28px; |
| | | border-left: 8px solid #42b983; |
| | | padding-left: 5px; |
| | | margin-bottom: 15px; |
| | | } |
| | | .jic-value { |
| | | font-size: 20px; |
| | | border-top: 1px solid #a7abac; |
| | | padding: 20px; |
| | | div { |
| | | margin-bottom: 15px; |
| | | span { |
| | | margin-left: 180px; |
| | | } |
| | | } |
| | | .wenjuanjs { |
| | | margin-left: 15px; |
| | | padding-bottom: 5px; |
| | | border-bottom: 1px solid #a7abac; |
| | | } |
| | | } |
| | | .preview-left { |
| | | margin: 20px; |
| | | // margin: 20px; |
| | | padding: 30px; |
| | | background: #ffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .topic-dev { |
| | | margin-bottom: 25px; |
| | | font-size: 20px !important; |
| | | .dev-text { |
| | | margin-bottom: 10px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .examine-jieg { |
| | | .headline { |
| | | font-size: 28px; |
| | | padding-left: 5px; |
| | | border-left: 8px solid #41a1be; |
| | | // border-bottom: 1px solid #41a1be; |
| | | margin-bottom: 15px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | ::v-deep.el-tabs--left, |
| | | .el-tabs--right { |
| | | overflow: hidden; |
| | | align-items: center; |
| | | display: flex; |
| | | } |
| | | ::v-deep.el-input--medium .el-input__inner { |
| | | height: 40px !important; |
| | | } |
| | | ::v-deep.el-tabs--right .el-tabs__active-bar.is-right { |
| | | height: 40px; |
| | | width: 5px; |
| | | left: 0; |
| | | } |
| | | ::v-deep.el-tabs--right .el-tabs__item.is-right { |
| | | display: block; |
| | | font-size: 20px; |
| | | } |
| | | ::v-deep.el-radio-group { |
| | | span { |
| | | font-size: 24px; |
| | | } |
| | | } |
| | | ::v-deep.el-checkbox-group { |
| | | span { |
| | | font-size: 24px; |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="educationmanagement"> |
| | | <!-- 左侧æ --> |
| | | <div class="sidecolumn"> |
| | | <div class="sidecolumn-top"> |
| | | <div class="top-wj">宣æç±»å</div> |
| | | <div class="top-tj" @click="dialogFormVisible = true">+æ·»å ç±»å«</div> |
| | | </div> |
| | | <div class="center-ss"> |
| | | <el-input |
| | | placeholder="请è¾å
¥å
容" |
| | | v-model="sidecolumnval" |
| | | class="input-with-select" |
| | | size="medium " |
| | | > |
| | | <el-button |
| | | @click="sidecolumnss" |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | ></el-button> |
| | | </el-input> |
| | | </div> |
| | | <div class="bottom-fl"> |
| | | <el-tabs tab-position="right"> |
| | | <el-tab-pane :label="`å
¨é¨ (${numberlb})`"></el-tab-pane> |
| | | <el-tab-pane |
| | | class="tab-paness" |
| | | :key="item.name" |
| | | v-for="(item, index) in editableTabs" |
| | | :label="item.title + ' (' + item.number + ')'" |
| | | ></el-tab-pane> |
| | | |
| | | <el-tab-pane :label="`æªåç»(${numberlbs})`"></el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </div> |
| | | <!-- å³ä¾§æ°æ® --> |
| | | <div class="leftvlue"> |
| | | <div class="leftvlue-top"> |
| | | <el-tabs v-model="topactiveName" @tab-click="tophandleClick"> |
| | | <el-tab-pane name="Local"> |
| | | <span class="mulsz" slot="label">æ¬å°å®£æåº </span> |
| | | </el-tab-pane> |
| | | <el-tab-pane name="sharing"> |
| | | <span class="mulsz" slot="label">å
±äº«å®£æåº </span> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | <div class="leftvlue-bg"> |
| | | <el-row :gutter="20"> |
| | | <!--ç¨æ·æ°æ®--> |
| | | <el-col :span="24" :xs="24"> |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="宣æåç§°" prop="userName"> |
| | | <el-input |
| | | v-model="queryParams.userName" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="éç¨ç¾ç
" prop="sickness"> |
| | | <el-cascader |
| | | v-model="queryParams.sickness" |
| | | :options="optionss" |
| | | :props="propss" |
| | | clearable |
| | | ></el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="宣æå½¢å¼" prop="shape"> |
| | | <el-select |
| | | v-model="queryParams.shapevalue" |
| | | placeholder="è¯·éæ©" |
| | | > |
| | | <el-option |
| | | v-for="item in xjxsoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="宣æåç±»" prop="classify"> |
| | | <el-select |
| | | v-model="queryParams.classifyvalue" |
| | | placeholder="è¯·éæ©" |
| | | > |
| | | <el-option |
| | | v-for="(item, index) in editableTabs" |
| | | :key="index++" |
| | | :label="item.title" |
| | | :value="index++" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="medium" |
| | | @click="handleQuery" |
| | | >æç´¢</el-button |
| | | > |
| | | <el-button |
| | | icon="el-icon-refresh" |
| | | size="medium" |
| | | @click="resetQuery" |
| | | >éç½®</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | v-hasPermi="['system:user:add']" |
| | | >æ°å¢</el-button |
| | | > |
| | | </el-col> |
| | | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="medium" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['system:user:remove']" |
| | | >å é¤</el-button |
| | | > |
| | | </el-col> |
| | | |
| | | <!-- <el-col :span="1.5"> </el-col> --> |
| | | </el-row> |
| | | <!-- <right-toolbar |
| | | :showSearch.sync="showSearch" |
| | | @queryTable="getList" |
| | | :columns="columns" |
| | | ></right-toolbar> --> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="userList" |
| | | border="true" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | | <el-table-column |
| | | label="åºå·" |
| | | align="center" |
| | | key="userid" |
| | | prop="userid" |
| | | /> |
| | | <el-table-column |
| | | label="宣æåç§°" |
| | | align="center" |
| | | key="userName" |
| | | prop="userName" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="çæ¬" |
| | | align="center" |
| | | key="nickName" |
| | | prop="nickName" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="éç¨ç¾ç
" |
| | | align="center" |
| | | key="aphonenumber" |
| | | prop="aphonenumber" |
| | | width="120" |
| | | /><el-table-column |
| | | label="宣ææè¿°" |
| | | align="center" |
| | | key="bphonenumber" |
| | | prop="bphonenumber" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="æè¿ç¼è¾" |
| | | align="center" |
| | | key="cphonenumber" |
| | | prop="cphonenumber" |
| | | width="120" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="æä½" |
| | | align="center" |
| | | width="300" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="goQRCode(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | > |
| | | <span class="button-text" |
| | | ><i class="el-icon-edit"></i>äºç»´ç </span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="Vieweducation(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textck" |
| | | ><i class="el-icon-edit"></i>æ¥ç</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textxg" |
| | | ><i class="el-icon-edit"></i>ä¿®æ¹</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:user:remove']" |
| | | ><span class="button-textsc" |
| | | ><i class="el-icon-edit"></i>å é¤</span |
| | | ></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-col> |
| | | </el-row> |
| | | |
| | | <!-- æ·»å æä¿®æ¹å®£æé
ç½®å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | :title="title" |
| | | :visible.sync="open" |
| | | width="900px" |
| | | append-to-body |
| | | > |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="100px"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å§å" prop="nickName"> |
| | | <el-input |
| | | v-model="form.nickName" |
| | | placeholder="请è¾å
¥å§å" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ§å«" prop="deptId"> |
| | | <el-select v-model="form.sex" placeholder="è¯·éæ©æ§å«"> |
| | | <el-option |
| | | v-for="dict in dict.type.sys_user_sex" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è¯ä»¶ç±»å" prop="phonenumber"> |
| | | <el-input |
| | | v-model="form.phonenumber" |
| | | placeholder="è¯·éæ©è¯ä»¶ç±»å" |
| | | maxlength="11" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è¯ä»¶å·" prop="email"> |
| | | <el-input |
| | | v-model="form.email" |
| | | placeholder="请è¾å
¥è¯ä»¶å·" |
| | | maxlength="50" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ¬äººææºå·" prop="userName"> |
| | | <el-input |
| | | v-model="form.userName" |
| | | placeholder="请è¾å
¥ææºå·" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="äº²å±ææºå·" prop="password"> |
| | | <el-input |
| | | v-model="form.password" |
| | | placeholder="请è¾å
¥äº²å±ææºå·" |
| | | type="password" |
| | | maxlength="20" |
| | | show-password |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ£è
æ ç¾"> |
| | | <el-cascader |
| | | :options="optionss" |
| | | :props="propss" |
| | | clearable |
| | | ></el-cascader> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="夿³¨"> |
| | | <el-input |
| | | v-model="form.remark" |
| | | type="textarea" |
| | | placeholder="请è¾å
¥å
容" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">ç¡® å®</el-button> |
| | | <el-button @click="cancel">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </div> |
| | | <!-- æ·»å ç±»å«å¼¹æ¡ --> |
| | | <el-dialog width="30%" :visible.sync="dialogFormVisible"> |
| | | <el-form :model="sidecolumnform"> |
| | | <el-form-item label="请è¾å
¥ç±»å«åç§°"> |
| | | <el-input v-model="form.name" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogFormVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitsidecolumn">ç¡® å®</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- äºç»´ç å±ç¤ºå¼¹æ¡ --> |
| | | <el-dialog width="30%" :visible.sync="goQRCodeVisible"> |
| | | <div class="qrcode-dialo"> |
| | | <div class="qrcode-text"> |
| | | {{ nameeducation }}<span>{{ haoeducation }}</span> |
| | | </div> |
| | | <div class="qrcode-img"></div> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | listUser, |
| | | getUser, |
| | | delUser, |
| | | addUser, |
| | | updateUser, |
| | | } from "@/api/system/user"; |
| | | import { getToken } from "@/utils/auth"; |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | export default { |
| | | name: "education", |
| | | dicts: ["sys_normal_disable", "sys_user_sex"], |
| | | components: { Treeselect }, |
| | | data() { |
| | | return { |
| | | topactiveName: "Local", //é¡¶é¨éæ© |
| | | // é®ç½©å± |
| | | loading: false, |
| | | // é䏿°ç» |
| | | ids: [], |
| | | // éå个ç¦ç¨ |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | nameeducation: "", |
| | | haoeducation: "", |
| | | // ç¨æ·è¡¨æ ¼æ°æ® |
| | | userList: [ |
| | | { |
| | | userid: 1, |
| | | userName: "ä¸å·å®£æ", |
| | | nickName: "1.2.4", |
| | | |
| | | aphonenumber: "å
³èçç", |
| | | bphonenumber: "徿£", |
| | | cphonenumber: "2022-12-12", |
| | | }, |
| | | ], |
| | | // å¼¹åºå±æ é¢ |
| | | title: "", |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå± |
| | | open: false, |
| | | // æ¥æèå´ |
| | | dateRange: [], |
| | | // å²ä½é项 |
| | | postOptions: [], |
| | | // è§è²é项 |
| | | roleOptions: [], |
| | | // 表ååæ° |
| | | form: {}, |
| | | numberlb: 22, |
| | | numberlbs: 2, |
| | | sidecolumnform: {}, //æ·»å ç±»å«è¡¨å |
| | | dialogFormVisible: false, //æ·»å ç±»å«å¼¹æ¡ |
| | | goQRCodeVisible: false, //äºç»´ç å¼¹æ¡ |
| | | sidecolumnval: "", //ç±»å«æç´¢ |
| | | propss: { multiple: true }, |
| | | optionss: [ |
| | | { |
| | | value: 1, |
| | | label: "ä¸å", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "西å", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "仨仨仨", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "å
é£é£é£", |
| | | }, |
| | | ], |
| | | xjxsoptions: [ |
| | | { |
| | | value: 1, |
| | | label: "è§é¢", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "讲座", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "è¯é³", |
| | | }, |
| | | ], |
| | | //ç±»å«å表 |
| | | editableTabs: [ |
| | | { |
| | | title: "宣æåç±»ä¸", |
| | | number: "1", |
| | | }, |
| | | { |
| | | title: "宣æåç±»äº", |
| | | number: "2", |
| | | }, |
| | | { |
| | | title: "宣æåç±»ä¸", |
| | | number: "2", |
| | | }, |
| | | { |
| | | title: "宣æåç±»å", |
| | | number: "2", |
| | | }, |
| | | { |
| | | title: "宣æåç±»äº", |
| | | number: "2", |
| | | }, |
| | | ], |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | sickness: "", |
| | | classifyvalue: "", |
| | | shapevalue: "", |
| | | userName: undefined, |
| | | }, |
| | | // åä¿¡æ¯ |
| | | columns: [ |
| | | { key: 0, label: `ç¨æ·ç¼å·`, visible: true }, |
| | | { key: 1, label: `ç¨æ·åç§°`, visible: true }, |
| | | { key: 2, label: `ç¨æ·æµç§°`, visible: true }, |
| | | { key: 3, label: `é¨é¨`, visible: true }, |
| | | { key: 4, label: `ææºå·ç `, visible: true }, |
| | | { key: 5, label: `ç¶æ`, visible: true }, |
| | | { key: 6, label: `å建æ¶é´`, visible: true }, |
| | | ], |
| | | // è¡¨åæ ¡éª |
| | | rules: { |
| | | userName: [ |
| | | { required: true, message: "ç¨æ·åç§°ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | { |
| | | min: 2, |
| | | max: 20, |
| | | message: "ç¨æ·åç§°é¿åº¦å¿
é¡»ä»äº 2 å 20 ä¹é´", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | nickName: [ |
| | | { required: true, message: "ç¨æ·æµç§°ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | ], |
| | | password: [ |
| | | { required: true, message: "ç¨æ·å¯ç ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | { |
| | | min: 5, |
| | | max: 20, |
| | | message: "ç¨æ·å¯ç é¿åº¦å¿
é¡»ä»äº 5 å 20 ä¹é´", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | email: [ |
| | | { |
| | | type: "email", |
| | | message: "请è¾å
¥æ£ç¡®çé®ç®±å°å", |
| | | trigger: ["blur", "change"], |
| | | }, |
| | | ], |
| | | phonenumber: [ |
| | | { |
| | | pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, |
| | | message: "请è¾å
¥æ£ç¡®çææºå·ç ", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | IDnumber: [ |
| | | { |
| | | pattern: |
| | | /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/, |
| | | message: "请è¾å
¥æ£ç¡®ç身份è¯å·ç ", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | watch: {}, |
| | | created() { |
| | | this.getList(); |
| | | }, |
| | | |
| | | methods: { |
| | | /** æ¥è¯¢ç¨æ·å表 */ |
| | | getList() { |
| | | // this.loading = true; |
| | | listUser().then((response) => { |
| | | console.log(response); |
| | | // this.userList = response.data; |
| | | // this.total = response.total; |
| | | // this.loading = false; |
| | | console.log(this.userList); |
| | | }); |
| | | // const { rows } = await listUser(); |
| | | // console.log(rows); |
| | | // this.list = rows; |
| | | }, |
| | | // æ·»å ç±»å« |
| | | submitsidecolumn() { |
| | | this.dialogFormVisible = false; |
| | | }, |
| | | //æç´¢ç±»å« |
| | | sidecolumnss() {}, |
| | | // 忢å
±äº«/æ¬å° |
| | | tophandleClick() {}, |
| | | // åæ¶æé® |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | goQRCode(row) { |
| | | this.goQRCodeVisible = true; |
| | | this.nameeducation = row.userName; |
| | | this.haoeducation = row.nickName; |
| | | }, |
| | | // 表åéç½® |
| | | reset() { |
| | | this.form = { |
| | | userId: undefined, |
| | | deptId: undefined, |
| | | userName: undefined, |
| | | nickName: undefined, |
| | | password: undefined, |
| | | phonenumber: undefined, |
| | | email: undefined, |
| | | sex: undefined, |
| | | status: "0", |
| | | remark: undefined, |
| | | postIds: [], |
| | | roleIds: [], |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.resetForm("queryForm"); |
| | | this.queryParams.deptId = undefined; |
| | | this.$refs.tree.setCurrentKey(null); |
| | | this.handleQuery(); |
| | | }, |
| | | // å¤éæ¡é䏿°æ® |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map((item) => item.userId); |
| | | this.single = selection.length != 1; |
| | | this.multiple = !selection.length; |
| | | }, |
| | | /** æ°å¢æé®æä½ */ |
| | | handleAdd() { |
| | | this.$router.push({ |
| | | path: "/knowledge/education/compilequer/", |
| | | }); |
| | | }, |
| | | /** ä¿®æ¹æé®æä½ */ |
| | | handleUpdate(row) { |
| | | this.$router.push({ |
| | | path: "/knowledge/education/compilequer/", |
| | | query: { id: "1" }, |
| | | }); |
| | | }, |
| | | // æ¥ç宣æ |
| | | Vieweducation() { |
| | | this.$router.push({ |
| | | path: "/knowledge/education/examine/", |
| | | query: { id: "1" }, |
| | | }); |
| | | }, |
| | | |
| | | /** æ´æ°/ä¿®æ¹æäº¤æé® */ |
| | | submitForm: function () { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | if (this.form.userId != undefined) { |
| | | updateUser(this.form).then((response) => { |
| | | this.$modal.msgSuccess("ä¿®æ¹æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } else { |
| | | addUser(this.form).then((response) => { |
| | | this.$modal.msgSuccess("æ°å¢æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | /** å é¤æé®æä½ */ |
| | | handleDelete(row) { |
| | | const userIds = row.userId || this.ids; |
| | | this.$modal |
| | | .confirm('æ¯å¦ç¡®è®¤å é¤ç¨æ·ç¼å·ä¸º"' + userIds + '"çæ°æ®é¡¹ï¼') |
| | | .then(function () { |
| | | return delUser(userIds); |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .educationmanagement { |
| | | display: flex; |
| | | } |
| | | .sidecolumn { |
| | | width: 300px; |
| | | min-height: 100vh; |
| | | text-align: center; |
| | | // display: flex; |
| | | margin-top: 20px; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | background: #edf1f7; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .sidecolumn-top { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | .top-wj { |
| | | font-size: 20px; |
| | | } |
| | | .top-tj { |
| | | font-size: 18px; |
| | | |
| | | color: rgb(0, 89, 255); |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | .center-ss { |
| | | margin-top: 30px; |
| | | .input-with-select { |
| | | height: 40px !important; |
| | | } |
| | | } |
| | | .bottom-fl { |
| | | margin-top: 30px; |
| | | display: center !important; |
| | | } |
| | | } |
| | | .qrcode-dialo { |
| | | text-align: center; |
| | | // display: flex; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | background: #edf1f7; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .qrcode-text { |
| | | font-size: 20px; |
| | | span { |
| | | margin-left: 20px; |
| | | } |
| | | } |
| | | .qrcode-img { |
| | | width: 300px; |
| | | height: 400px; |
| | | } |
| | | } |
| | | ::v-deep.el-tabs--left, |
| | | .el-tabs--right { |
| | | overflow: hidden; |
| | | align-items: center; |
| | | display: flex; |
| | | } |
| | | ::v-deep.el-input--medium .el-input__inner { |
| | | height: 40px !important; |
| | | } |
| | | ::v-deep.el-tabs--right .el-tabs__active-bar.is-right { |
| | | height: 40px; |
| | | width: 5px; |
| | | left: 0; |
| | | } |
| | | ::v-deep.el-tabs--right .el-tabs__item.is-right { |
| | | display: block; |
| | | font-size: 20px; |
| | | } |
| | | .leftvlue { |
| | | // display: flex; |
| | | // flex: 1; |
| | | width: 80%; |
| | | margin-top: 20px; |
| | | // margin: 20px; |
| | | padding: 30px; |
| | | background: #ffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .mulsz { |
| | | font-size: 20px; |
| | | } |
| | | } |
| | | .button-text { |
| | | color: rgb(70, 204, 238); |
| | | } |
| | | .button-textck { |
| | | color: rgb(39, 167, 67); |
| | | } |
| | | .button-textxg { |
| | | color: rgb(35, 81, 233); |
| | | } |
| | | .button-textsc { |
| | | color: rgb(235, 23, 23); |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-row :gutter="20"> |
| | | <!--ç¨æ·æ°æ®--> |
| | | <el-col :span="24" :xs="24"> |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="é¢ç®åç§°" prop="userName"> |
| | | <el-input |
| | | v-model="queryParams.userName" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="身份è¯å·ç " prop="IDnumber"> |
| | | <el-input |
| | | v-model="queryParams.IDnumber" |
| | | placeholder="请è¾å
¥èº«ä»½è¯å·ç " |
| | | clearable |
| | | style="width: 250px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="èç³»æ¹å¼" prop="phonenumber"> |
| | | <el-input |
| | | v-model="queryParams.phonenumber" |
| | | placeholder="请è¾å
¥èç³»æ¹å¼" |
| | | clearable |
| | | style="width: 280px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-row> |
| | | <el-form-item label="æ£è
æ ç¾" prop="status"> |
| | | <el-cascader |
| | | v-model="queryParams.status" |
| | | :options="optionss" |
| | | :props="propss" |
| | | clearable |
| | | ></el-cascader> |
| | | </el-form-item> |
| | | </el-row> |
| | | |
| | | <!-- <el-form-item label="å建æ¶é´"> |
| | | <el-date-picker |
| | | v-model="dateRange" |
| | | style="width: 240px" |
| | | value-format="yyyy-MM-dd" |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="medium" @click="handleQuery">æç´¢</el-button> |
| | | <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">éç½®</el-button> |
| | | </el-form-item> --> |
| | | </el-form> |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | v-hasPermi="['system:user:add']" |
| | | >æ°å¢</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="success" |
| | | plain |
| | | icon="el-icon-edit" |
| | | size="medium" |
| | | :disabled="single" |
| | | @click="handleUpdate" |
| | | v-hasPermi="['system:user:edit']" |
| | | >ä¿®æ¹</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="medium" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['system:user:remove']" |
| | | >å é¤</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="19"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-button |
| | | type="info" |
| | | plain |
| | | icon="el-icon-upload2" |
| | | size="medium" |
| | | @click="handleImport" |
| | | v-hasPermi="['system:user:import']" |
| | | >导å
¥</el-button |
| | | > |
| | | </div> |
| | | <div class="document"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="medium" |
| | | @click="handleExport" |
| | | v-hasPermi="['system:user:export']" |
| | | >导åº</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <!-- <el-col :span="1.5"> </el-col> --> |
| | | </el-row> |
| | | <!-- <right-toolbar |
| | | :showSearch.sync="showSearch" |
| | | @queryTable="getList" |
| | | :columns="columns" |
| | | ></right-toolbar> --> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="userList" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | | <el-table-column |
| | | label="åºå·" |
| | | align="center" |
| | | key="userId" |
| | | prop="userId" |
| | | v-if="columns[0].visible" |
| | | /> |
| | | <el-table-column |
| | | label="å§å" |
| | | align="center" |
| | | key="userName" |
| | | prop="userName" |
| | | v-if="columns[1].visible" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="æ§å«" |
| | | align="center" |
| | | key="nickName" |
| | | prop="nickName" |
| | | v-if="columns[2].visible" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="æ£è
æ ç¾" |
| | | align="center" |
| | | key="deptName" |
| | | prop="dept.deptName" |
| | | v-if="columns[3].visible" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="è¯ä»¶ç±»å" |
| | | align="center" |
| | | key="phonenumber" |
| | | prop="phonenumber" |
| | | v-if="columns[4].visible" |
| | | width="120" |
| | | /><el-table-column |
| | | label="è¯ä»¶å·ç " |
| | | align="center" |
| | | key="phonenumber" |
| | | prop="phonenumber" |
| | | v-if="columns[4].visible" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="å¹´é¾" |
| | | align="center" |
| | | key="phonenumber" |
| | | prop="phonenumber" |
| | | v-if="columns[4].visible" |
| | | width="120" |
| | | /> |
| | | <!-- <el-table-column |
| | | label="ç¶æ" |
| | | align="center" |
| | | key="status" |
| | | v-if="columns[5].visible" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-switch |
| | | v-model="scope.row.status" |
| | | active-value="0" |
| | | inactive-value="1" |
| | | @change="handleStatusChange(scope.row)" |
| | | ></el-switch> |
| | | </template> |
| | | </el-table-column> --> |
| | | |
| | | <el-table-column |
| | | label="èç³»æ¹å¼" |
| | | align="center" |
| | | key="phonenumber" |
| | | prop="phonenumber" |
| | | v-if="columns[4].visible" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="å»ºæ¡£æ¥æ" |
| | | align="center" |
| | | prop="createTime" |
| | | v-if="columns[6].visible" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.createTime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æ´æ°æ¥æ" |
| | | align="center" |
| | | prop="createTime" |
| | | v-if="columns[6].visible" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.createTime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æä½" |
| | | align="center" |
| | | width="160" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope" v-if="scope.row.userId !== 1"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="$router.push('/patient/patient/profile/')" |
| | | v-hasPermi="['system:user:edit']" |
| | | >æ¥ç</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-col> |
| | | </el-row> |
| | | |
| | | <!-- æ·»å æä¿®æ¹ç¨æ·é
ç½®å¯¹è¯æ¡ --> |
| | | <el-dialog :title="title" :visible.sync="open" width="900px" append-to-body> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="100px"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å§å" prop="nickName"> |
| | | <el-input |
| | | v-model="form.nickName" |
| | | placeholder="请è¾å
¥å§å" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ§å«" prop="deptId"> |
| | | <el-select v-model="form.sex" placeholder="è¯·éæ©æ§å«"> |
| | | <el-option |
| | | v-for="dict in dict.type.sys_user_sex" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è¯ä»¶ç±»å" prop="phonenumber"> |
| | | <el-input |
| | | v-model="form.phonenumber" |
| | | placeholder="è¯·éæ©è¯ä»¶ç±»å" |
| | | maxlength="11" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è¯ä»¶å·" prop="email"> |
| | | <el-input |
| | | v-model="form.email" |
| | | placeholder="请è¾å
¥è¯ä»¶å·" |
| | | maxlength="50" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ¬äººææºå·" prop="userName"> |
| | | <el-input |
| | | v-model="form.userName" |
| | | placeholder="请è¾å
¥ææºå·" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="äº²å±ææºå·" prop="password"> |
| | | <el-input |
| | | v-model="form.password" |
| | | placeholder="请è¾å
¥äº²å±ææºå·" |
| | | type="password" |
| | | maxlength="20" |
| | | show-password |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ£è
æ ç¾"> |
| | | <!-- <el-select v-model="form.sex" placeholder="è¯·éæ©"> --> |
| | | <el-cascader |
| | | :options="optionss" |
| | | :props="propss" |
| | | clearable |
| | | ></el-cascader> |
| | | <!-- </el-select> --> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- <el-col :span="12"> |
| | | <el-form-item label="ç¶æ"> |
| | | <el-radio-group v-model="form.status"> |
| | | <el-radio |
| | | v-for="dict in dict.type.sys_normal_disable" |
| | | :key="dict.value" |
| | | :label="dict.value" |
| | | >{{ dict.label }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> --> |
| | | </el-row> |
| | | <!-- <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å²ä½"> |
| | | <el-select |
| | | v-model="form.postIds" |
| | | multiple |
| | | placeholder="è¯·éæ©å²ä½" |
| | | > |
| | | <el-option |
| | | v-for="item in postOptions" |
| | | :key="item.postId" |
| | | :label="item.postName" |
| | | :value="item.postId" |
| | | :disabled="item.status == 1" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è§è²"> |
| | | <el-select |
| | | v-model="form.roleIds" |
| | | multiple |
| | | placeholder="è¯·éæ©è§è²" |
| | | > |
| | | <el-option |
| | | v-for="item in roleOptions" |
| | | :key="item.roleId" |
| | | :label="item.roleName" |
| | | :value="item.roleId" |
| | | :disabled="item.status == 1" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> --> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="夿³¨"> |
| | | <el-input |
| | | v-model="form.remark" |
| | | type="textarea" |
| | | placeholder="请è¾å
¥å
容" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">ç¡® å®</el-button> |
| | | <el-button @click="cancel">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <!-- ç¨æ·å¯¼å
¥å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | :title="upload.title" |
| | | :visible.sync="upload.open" |
| | | width="70%" |
| | | append-to-body |
| | | > |
| | | <el-steps :active="dractive" simple> |
| | | <el-step title="ä¸ä¼ 导å
¥æä»¶" icon="el-icon-upload"></el-step> |
| | | <el-step title="导å
¥æ£æ¥" icon="el-icon-picture"></el-step> |
| | | <el-step title="导å
¥ç»æ" icon="el-icon-picture"></el-step> |
| | | </el-steps> |
| | | <!-- ä¸ä¼ 导å
¥æä»¶ --> |
| | | <div class="download" v-if="dractive == 1"> |
| | | <el-upload |
| | | class="upload-demo" |
| | | ref="upload" |
| | | :limit="1" |
| | | accept=".xlsx, .xls" |
| | | :headers="upload.headers" |
| | | :action="upload.url + '?updateSupport=' + upload.updateSupport" |
| | | :disabled="upload.isUploading" |
| | | :on-progress="handleFileUploadProgress" |
| | | :on-success="handleFileSuccess" |
| | | :auto-upload="false" |
| | | drag |
| | | > |
| | | <i class="el-icon-upload"></i> |
| | | <div class="el-upload__text">å°æä»¶æå°æ¤å¤ï¼æ<em>ç¹å»ä¸ä¼ </em></div> |
| | | <div class="el-upload__tip text-center" slot="tip"> |
| | | <div class="el-upload__tip" slot="tip"> |
| | | <el-checkbox v-model="upload.updateSupport" /> |
| | | æ¯å¦æ´æ°å·²ç»åå¨çç¨æ·æ°æ® |
| | | </div> |
| | | <span>ä»
å
许导å
¥xlsãxlsxæ ¼å¼æä»¶ã</span> |
| | | <el-link |
| | | type="primary" |
| | | :underline="false" |
| | | style="font-size: 24px; vertical-align: baseline" |
| | | @click="importTemplate" |
| | | >ä¸è½½æ¨¡æ¿</el-link |
| | | > |
| | | </div> |
| | | </el-upload> |
| | | </div> |
| | | <!-- 导å
¥æ£æ¥ --> |
| | | <div class="uploading" v-else-if="dractive == 2"> |
| | | <el-table :data="uploadingData" style="width: 100%"> |
| | | <el-table-column prop="serial" label="åºå·"> </el-table-column> |
| | | <el-table-column prop="name" label="å§å"> </el-table-column> |
| | | <el-table-column prop="sex" label="æ§å«"> </el-table-column> |
| | | <el-table-column prop="certificate" label="è¯ä»¶ç±»å"> |
| | | </el-table-column> |
| | | <el-table-column prop="certificatenum" label="è¯ä»¶å·ç "> |
| | | </el-table-column> |
| | | <el-table-column prop="goday" label="åºçæ¥æ"> </el-table-column> |
| | | <el-table-column prop="menum" label="æ¬äººèç³»æ¹å¼"> </el-table-column> |
| | | <el-table-column prop="younum" label="亲å±èç³»æ¹å¼"> |
| | | </el-table-column> |
| | | <el-table-column prop="tag" label="æ£è
æ ç¾"> </el-table-column> |
| | | <el-table-column prop="erry" label="é误åå "> </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="geterryList" |
| | | /> |
| | | </div> |
| | | <!-- 宿 --> |
| | | <div class="drexamine" v-else-if="dractive == 3"> |
| | | <img |
| | | src="https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg" |
| | | /> |
| | | <p>导å
¥æ£è
æåï¼</p> |
| | | <p>æ¬æ¬¡å
±è®¡å¯¼å
¥{{ ImportQuantity }}使£è
</p> |
| | | </div> |
| | | |
| | | <div slot="footer" class="dialog-footer" v-if="dractive == 3"> |
| | | <!-- <el-button type="primary" @click="submitFileForm">ä¸ä¸æ¥</el-button> --> |
| | | <el-button @click="submitclose">宿</el-button> |
| | | </div> |
| | | <div slot="footer" v-else> |
| | | <el-button type="primary" @click="submitFileForm">ä¸ä¸æ¥</el-button> |
| | | <el-button @click="submitclose">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | listUser, |
| | | getUser, |
| | | delUser, |
| | | addUser, |
| | | updateUser, |
| | | resetUserPwd, |
| | | changeUserStatus, |
| | | deptTreeSelect, |
| | | } from "@/api/system/user"; |
| | | import { getToken } from "@/utils/auth"; |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | |
| | | export default { |
| | | name: "User", |
| | | dicts: ["sys_normal_disable", "sys_user_sex"], |
| | | components: { Treeselect }, |
| | | data() { |
| | | return { |
| | | // é®ç½©å± |
| | | loading: true, |
| | | // é䏿°ç» |
| | | ids: [], |
| | | // éå个ç¦ç¨ |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | // ç¨æ·è¡¨æ ¼æ°æ® |
| | | userList: null, |
| | | // å¼¹åºå±æ é¢ |
| | | title: "", |
| | | // é¨é¨æ é项 |
| | | deptOptions: undefined, |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå± |
| | | open: false, |
| | | // é¨é¨åç§° |
| | | deptName: undefined, |
| | | // é»è®¤å¯ç |
| | | initPassword: undefined, |
| | | // æ¥æèå´ |
| | | dateRange: [], |
| | | // å²ä½é项 |
| | | postOptions: [], |
| | | // è§è²é项 |
| | | roleOptions: [], |
| | | // 表ååæ° |
| | | form: {}, |
| | | //导å
¥è¿åº¦ |
| | | dractive: 1, |
| | | // 导å
¥å±ç¤ºè¡¨å |
| | | uploadingData: {}, |
| | | total: 0, // æ»æ¡æ° |
| | | ImportQuantity: 999, //导å
¥æ£è
æ°é |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | jobName: undefined, |
| | | jobGroup: undefined, |
| | | status: undefined, |
| | | }, |
| | | propss: { multiple: true }, |
| | | optionss: [ |
| | | { |
| | | value: 1, |
| | | label: "ä¸å", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "西å", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "仨仨仨", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "å
é£é£é£", |
| | | }, |
| | | ], |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "label", |
| | | }, |
| | | // ç¨æ·å¯¼å
¥åæ° |
| | | upload: { |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå±ï¼ç¨æ·å¯¼å
¥ï¼ |
| | | open: false, |
| | | // å¼¹åºå±æ é¢ï¼ç¨æ·å¯¼å
¥ï¼ |
| | | title: "", |
| | | // æ¯å¦ç¦ç¨ä¸ä¼ |
| | | isUploading: false, |
| | | // æ¯å¦æ´æ°å·²ç»åå¨çç¨æ·æ°æ® |
| | | updateSupport: 0, |
| | | // 设置ä¸ä¼ ç请æ±å¤´é¨ |
| | | headers: { Authorization: "Bearer " + getToken() }, |
| | | // ä¸ä¼ çå°å |
| | | url: process.env.VUE_APP_BASE_API + "/system/user/importData", |
| | | }, |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | userName: undefined, |
| | | phonenumber: undefined, |
| | | status: undefined, |
| | | deptId: undefined, |
| | | IDnumber: undefined, |
| | | }, |
| | | // åä¿¡æ¯ |
| | | columns: [ |
| | | { key: 0, label: `ç¨æ·ç¼å·`, visible: true }, |
| | | { key: 1, label: `ç¨æ·åç§°`, visible: true }, |
| | | { key: 2, label: `ç¨æ·æµç§°`, visible: true }, |
| | | { key: 3, label: `é¨é¨`, visible: true }, |
| | | { key: 4, label: `ææºå·ç `, visible: true }, |
| | | { key: 5, label: `ç¶æ`, visible: true }, |
| | | { key: 6, label: `å建æ¶é´`, visible: true }, |
| | | ], |
| | | // è¡¨åæ ¡éª |
| | | rules: { |
| | | userName: [ |
| | | { required: true, message: "ç¨æ·åç§°ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | { |
| | | min: 2, |
| | | max: 20, |
| | | message: "ç¨æ·åç§°é¿åº¦å¿
é¡»ä»äº 2 å 20 ä¹é´", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | nickName: [ |
| | | { required: true, message: "ç¨æ·æµç§°ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | ], |
| | | password: [ |
| | | { required: true, message: "ç¨æ·å¯ç ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | { |
| | | min: 5, |
| | | max: 20, |
| | | message: "ç¨æ·å¯ç é¿åº¦å¿
é¡»ä»äº 5 å 20 ä¹é´", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | email: [ |
| | | { |
| | | type: "email", |
| | | message: "请è¾å
¥æ£ç¡®çé®ç®±å°å", |
| | | trigger: ["blur", "change"], |
| | | }, |
| | | ], |
| | | phonenumber: [ |
| | | { |
| | | pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, |
| | | message: "请è¾å
¥æ£ç¡®çææºå·ç ", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | IDnumber: [ |
| | | { |
| | | pattern: |
| | | /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/, |
| | | message: "请è¾å
¥æ£ç¡®ç身份è¯å·ç ", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | watch: { |
| | | // æ ¹æ®åç§°çéé¨é¨æ |
| | | deptName(val) { |
| | | this.$refs.tree.filter(val); |
| | | }, |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | this.getDeptTree(); |
| | | this.getConfigKey("sys.user.initPassword").then((response) => { |
| | | this.initPassword = response.msg; |
| | | }); |
| | | }, |
| | | methods: { |
| | | /** æ¥è¯¢ç¨æ·å表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listUser(this.addDateRange(this.queryParams, this.dateRange)).then( |
| | | (response) => { |
| | | this.userList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | } |
| | | ); |
| | | }, |
| | | // æ¥è¯¢å¯¼å
¥å±ç¤ºå表 |
| | | geterryList() { |
| | | this.loading = true; |
| | | listJob(this.queryParams).then((response) => { |
| | | this.jobList = 1; |
| | | this.total = 1; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | /** æ¥è¯¢é¨é¨ä¸ææ ç»æ */ |
| | | getDeptTree() { |
| | | deptTreeSelect().then((response) => { |
| | | this.deptOptions = response.data; |
| | | }); |
| | | }, |
| | | // çéèç¹ |
| | | filterNode(value, data) { |
| | | if (!value) return true; |
| | | return data.label.indexOf(value) !== -1; |
| | | }, |
| | | // èç¹åå»äºä»¶ |
| | | handleNodeClick(data) { |
| | | this.queryParams.deptId = data.id; |
| | | this.handleQuery(); |
| | | }, |
| | | // ç¨æ·ç¶æä¿®æ¹ |
| | | handleStatusChange(row) { |
| | | let text = row.status === "0" ? "å¯ç¨" : "åç¨"; |
| | | this.$modal |
| | | .confirm('确认è¦"' + text + '""' + row.userName + '"ç¨æ·åï¼') |
| | | .then(function () { |
| | | return changeUserStatus(row.userId, row.status); |
| | | }) |
| | | .then(() => { |
| | | this.$modal.msgSuccess(text + "æå"); |
| | | }) |
| | | .catch(function () { |
| | | row.status = row.status === "0" ? "1" : "0"; |
| | | }); |
| | | }, |
| | | // åæ¶æé® |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | // 表åéç½® |
| | | reset() { |
| | | this.form = { |
| | | userId: undefined, |
| | | deptId: undefined, |
| | | userName: undefined, |
| | | nickName: undefined, |
| | | password: undefined, |
| | | phonenumber: undefined, |
| | | email: undefined, |
| | | sex: undefined, |
| | | status: "0", |
| | | remark: undefined, |
| | | postIds: [], |
| | | roleIds: [], |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.resetForm("queryForm"); |
| | | this.queryParams.deptId = undefined; |
| | | this.$refs.tree.setCurrentKey(null); |
| | | this.handleQuery(); |
| | | }, |
| | | // å¤éæ¡é䏿°æ® |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map((item) => item.userId); |
| | | this.single = selection.length != 1; |
| | | this.multiple = !selection.length; |
| | | }, |
| | | // æ´å¤æä½è§¦å |
| | | handleCommand(command, row) { |
| | | switch (command) { |
| | | case "handleResetPwd": |
| | | this.handleResetPwd(row); |
| | | break; |
| | | case "handleAuthRole": |
| | | this.handleAuthRole(row); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | }, |
| | | /** æ°å¢æé®æä½ */ |
| | | handleAdd() { |
| | | this.reset(); |
| | | getUser().then((response) => { |
| | | this.postOptions = response.posts; |
| | | this.roleOptions = response.roles; |
| | | this.open = true; |
| | | this.title = "æ°å¢æ£è
"; |
| | | this.form.password = this.initPassword; |
| | | }); |
| | | }, |
| | | /** ä¿®æ¹æé®æä½ */ |
| | | handleUpdate(row) { |
| | | this.reset(); |
| | | const userId = row.userId || this.ids; |
| | | getUser(userId).then((response) => { |
| | | this.form = response.data; |
| | | this.postOptions = response.posts; |
| | | this.roleOptions = response.roles; |
| | | this.$set(this.form, "postIds", response.postIds); |
| | | this.$set(this.form, "roleIds", response.roleIds); |
| | | this.open = true; |
| | | this.title = "ä¿®æ¹ç¨æ·"; |
| | | this.form.password = ""; |
| | | }); |
| | | }, |
| | | /** éç½®å¯ç æé®æä½ */ |
| | | handleResetPwd(row) { |
| | | this.$prompt('请è¾å
¥"' + row.userName + '"çæ°å¯ç ', "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | closeOnClickModal: false, |
| | | inputPattern: /^.{5,20}$/, |
| | | inputErrorMessage: "ç¨æ·å¯ç é¿åº¦å¿
é¡»ä»äº 5 å 20 ä¹é´", |
| | | }) |
| | | .then(({ value }) => { |
| | | resetUserPwd(row.userId, value).then((response) => { |
| | | this.$modal.msgSuccess("ä¿®æ¹æåï¼æ°å¯ç æ¯ï¼" + value); |
| | | }); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | /** åé
è§è²æä½ */ |
| | | handleAuthRole: function (row) { |
| | | const userId = row.userId; |
| | | this.$router.push("/system/user-auth/role/" + userId); |
| | | }, |
| | | /** æäº¤æé® */ |
| | | submitForm: function () { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | if (this.form.userId != undefined) { |
| | | updateUser(this.form).then((response) => { |
| | | this.$modal.msgSuccess("ä¿®æ¹æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } else { |
| | | addUser(this.form).then((response) => { |
| | | this.$modal.msgSuccess("æ°å¢æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | /** å é¤æé®æä½ */ |
| | | handleDelete(row) { |
| | | const userIds = row.userId || this.ids; |
| | | this.$modal |
| | | .confirm('æ¯å¦ç¡®è®¤å é¤ç¨æ·ç¼å·ä¸º"' + userIds + '"çæ°æ®é¡¹ï¼') |
| | | .then(function () { |
| | | return delUser(userIds); |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | /** å¯¼åºæé®æä½ */ |
| | | handleExport() { |
| | | this.download( |
| | | "system/user/export", |
| | | { |
| | | ...this.queryParams, |
| | | }, |
| | | `user_${new Date().getTime()}.xlsx` |
| | | ); |
| | | }, |
| | | /** 导å
¥æé®æä½ */ |
| | | handleImport() { |
| | | this.upload.title = "ç¨æ·å¯¼å
¥"; |
| | | this.upload.open = true; |
| | | }, |
| | | /** ä¸è½½æ¨¡æ¿æä½ */ |
| | | importTemplate() { |
| | | this.download( |
| | | "system/user/importTemplate", |
| | | {}, |
| | | `user_template_${new Date().getTime()}.xlsx` |
| | | ); |
| | | }, |
| | | // æä»¶ä¸ä¼ ä¸å¤ç |
| | | handleFileUploadProgress(event, file, fileList) { |
| | | this.upload.isUploading = true; |
| | | }, |
| | | // æä»¶ä¸ä¼ æåå¤ç |
| | | handleFileSuccess(response, file, fileList) { |
| | | this.upload.open = false; |
| | | this.upload.isUploading = false; |
| | | this.$refs.upload.clearFiles(); |
| | | this.$alert( |
| | | "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + |
| | | response.msg + |
| | | "</div>", |
| | | "导å
¥ç»æ", |
| | | { dangerouslyUseHTMLString: true } |
| | | ); |
| | | this.getList(); |
| | | }, |
| | | // æäº¤ä¸ä¼ æä»¶ |
| | | submitFileForm() { |
| | | // ä¸ä¼ |
| | | if (this.dractive == 1) { |
| | | this.$refs.upload.submit(); |
| | | this.dractive++; |
| | | } else { |
| | | this.dractive++; |
| | | } |
| | | }, |
| | | submitclose() { |
| | | this.upload.open = false; |
| | | this.dractive = 1; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .el-button--primary.is-plain { |
| | | color: #ffffff; |
| | | background: #409eff; |
| | | border-color: #4fabe9; |
| | | } |
| | | .document { |
| | | width: 100px; |
| | | height: 50px; |
| | | } |
| | | .documentf { |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | } |
| | | .download { |
| | | text-align: center; |
| | | .el-upload__tip { |
| | | font-size: 23px; |
| | | } |
| | | .el-upload__text { |
| | | font-size: 23px; |
| | | } |
| | | } |
| | | .uploading { |
| | | margin-top: 20px; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | background: #ffffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | } |
| | | .drexamine { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | padding: 30px; |
| | | background: #daeaf5; |
| | | img { |
| | | width: 100px; |
| | | height: 100px; |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="Questionnairemanagement"> |
| | | <!-- 左侧æ --> |
| | | <div class="sidecolumn"> |
| | | <div style="height: 400px"> |
| | | <el-steps direction="vertical" :active="Editprogress"> |
| | | <el-step title="åºç¡ä¿¡æ¯è®¾ç½®"></el-step> |
| | | <el-step title="é®å·è®¾ç½®"></el-step> |
| | | <el-step |
| | | title="é®å·é¢è§" |
| | | description="è¿æ¯ä¸æ®µå¾é¿å¾é¿å¾é¿çæè¿°æ§æå" |
| | | ></el-step> |
| | | <el-step |
| | | title="ç»æåé¦" |
| | | description="è¿æ¯ä¸æ®µå¾é¿å¾é¿å¾é¿çæè¿°æ§æå" |
| | | ></el-step> |
| | | </el-steps> |
| | | </div> |
| | | </div> |
| | | <!-- å³ä¾§æ°æ® --> |
| | | <div class="leftvlue"> |
| | | <!-- åºæ¬ä¿¡æ¯ --> |
| | | <div v-if="Editprogress == 1"> |
| | | <div class="leftvlue-jbxx"> |
| | | åºæ¬ä¿¡æ¯<span>å½åçæ¬:{{ currentVersion }}</span> |
| | | </div> |
| | | <el-form |
| | | :model="ruleForm" |
| | | :rules="rules" |
| | | ref="ruleForm" |
| | | label-width="100px" |
| | | class="demo-ruleForm" |
| | | > |
| | | <el-form-item label="æ´»å¨åç§°" prop="name"> |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ´»å¨åºå" prop="region"> |
| | | <el-select |
| | | v-model="ruleForm.region" |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="è¯·éæ©æ´»å¨åºå" |
| | | > |
| | | <el-option |
| | | class="ruleFormaa" |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ´»å¨å½¢å¼" prop="desc"> |
| | | <el-input |
| | | :rows="4" |
| | | type="textarea" |
| | | v-model="ruleForm.desc" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="success" @click="submitForm('ruleForm')" |
| | | >ä¸ä¸æ¥</el-button |
| | | > |
| | | <el-button @click="resetForm('ruleForm')">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <!-- é®å·è®¾ç½® --> |
| | | <div v-if="Editprogress == 2"> |
| | | <div class="leftvlue-jbxx">é®å·è®¾ç½®</div> |
| | | <el-form |
| | | :model="ruleForm" |
| | | :rules="rules" |
| | | ref="ruleForm" |
| | | label-width="100px" |
| | | class="demo-ruleForm" |
| | | > |
| | | <el-form-item label="é®å·ä»ç»" prop="desc"> |
| | | <el-cascader |
| | | class="demo-cascader" |
| | | v-model="ruleForm.templatevalue" |
| | | :options="options" |
| | | :props="{ expandTrigger: 'hover' }" |
| | | ></el-cascader> |
| | | <el-select v-model="ruleForm.data2" placeholder="æäº¤æç¤º"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | <div style="display: flex; margin-top: 20px"> |
| | | <div class="PreviewTemplate" @click="PreviewTemplate()"> |
| | | é¢è§æ¨¡ç |
| | | </div> |
| | | <el-button type="primary">确认å¼ç¨</el-button> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item label="æ´»å¨å½¢å¼" prop="desc"> |
| | | <el-input type="textarea" v-model="ruleForm.desc"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ´»å¨å½¢å¼" prop="desc"> |
| | | <el-input type="textarea" v-model="ruleForm.desc"></el-input> |
| | | <div class="addtopic"> |
| | | <el-select |
| | | v-model="addvalue" |
| | | @change="changeaddtopic" |
| | | class="addtopic-input" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </div> |
| | | |
| | | <div class="presentation"> |
| | | <div class="presentation-left"> |
| | | <el-table v-loading="loading" :data="userList"> |
| | | <el-table-column |
| | | label="åºå·" |
| | | align="center" |
| | | key="userid" |
| | | prop="userid" |
| | | /> |
| | | <el-table-column |
| | | label="é¢ç®" |
| | | align="center" |
| | | key="userName" |
| | | prop="userName" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="æä½" |
| | | align="center" |
| | | width="300" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <!-- <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="goQRCode(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | > |
| | | <span class="button-text" |
| | | ><i class="el-icon-edit"></i>äºç»´ç </span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="ViewQuestionnaire(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textck" |
| | | ><i class="el-icon-edit"></i>æ¥ç</span |
| | | ></el-button |
| | | > --> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textxg" |
| | | ><i class="el-icon-scissors"></i>ä¿®æ¹</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:user:remove']" |
| | | ><span class="button-textsc" |
| | | ><i class="el-icon-delete"></i>å é¤</span |
| | | ></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" |
| | | /> |
| | | </div> |
| | | <div class="presentation-right"> |
| | | <div class="headline">é¢ç®è®¾ç½®è¯¦æ
</div> |
| | | <div>é¢ç®æ é¢ï¼<span>è¿å®¶æºææä¹æ ·</span></div> |
| | | <div>æ¯å¦å¿
çï¼<span>æ¯</span> æ¯å¦éèï¼<span>å¦</span></div> |
| | | <div class="headline">é项设置</div> |
| | | <div> |
| | | <p>é项1:<span>å»çæºæ</span></p> |
| | | <p> |
| | | å¡«åæç»ï¼<span>æ </span> å¼å¸¸é项ï¼<span>æ </span> |
| | | åå¼ï¼<span>3</span> |
| | | </p> |
| | | <p>éä¸æç¤ºï¼<span>è¿ä¸ªé¢æç¹é¾è¯·æ³¨æ</span></p> |
| | | <p>éä¸è·³è½¬ï¼<span>æ </span></p> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="success" @click="submitForm('ruleForm')" |
| | | >ä¸ä¸æ¥</el-button |
| | | > |
| | | <el-button type="primary" @click="laststep()">ä¸ä¸æ¥</el-button> |
| | | <el-button @click="resetForm('ruleForm')">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <!-- é®å·é¢è§ --> |
| | | <div v-if="Editprogress == 3"> |
| | | <div class="preview-left"> |
| | | <!-- åé --> |
| | | <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> |
| | | <div class="dev-text"> |
| | | {{ item.idd }}ã[åé]<span>{{ item.wssd }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio |
| | | v-for="(items, index) in item.sdadd" |
| | | :key="index" |
| | | :label="index" |
| | | >{{ items }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | | </div> |
| | | </div> |
| | | <!-- å¤é --> |
| | | <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> |
| | | <div class="dev-text"> |
| | | {{ item.idd }}ã[å¤é]<span>{{ item.wssd }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-checkbox-group v-model="radios"> |
| | | <el-checkbox |
| | | v-for="(items, index) in item.sdadd" |
| | | :key="index" |
| | | :label="index" |
| | | > |
| | | {{ items }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </div> |
| | | </div> |
| | | <!-- 填空 --> |
| | | <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> |
| | | <div class="dev-text"> |
| | | {{ item.idd }}ã[填空]<span>{{ item.wssd }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-input placeholder="请è¾å
¥çæ¡" v-model="radioas" clearable> |
| | | </el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <el-button type="success" @click="submitForm('ruleForm')" |
| | | >ä¸ä¸æ¥</el-button |
| | | > |
| | | <el-button type="primary" @click="laststep()">ä¸ä¸æ¥</el-button> |
| | | <!-- <el-button @click="resetForm('ruleForm')">éç½®</el-button> --> |
| | | </div> |
| | | <!-- ç»æåé¦ --> |
| | | <div v-if="Editprogress == 4"> |
| | | <el-form |
| | | :model="ruleForm" |
| | | :rules="rules" |
| | | ref="ruleForm" |
| | | label-width="100px" |
| | | class="demo-ruleForm" |
| | | > |
| | | <el-form-item label="æ´»å¨åç§°" prop="name"> |
| | | <el-input v-model="ruleForm.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ´»å¨åºå" prop="region"> |
| | | <el-select v-model="ruleForm.region" placeholder="è¯·éæ©æ´»å¨åºå"> |
| | | <el-option label="åºåä¸" value="shanghai"></el-option> |
| | | <el-option label="åºåäº" value="beijing"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="æ´»å¨æ¶é´" required> |
| | | <el-col :span="11"> |
| | | <el-form-item prop="date1"> |
| | | <el-date-picker |
| | | type="date" |
| | | placeholder="éæ©æ¥æ" |
| | | v-model="ruleForm.date1" |
| | | style="width: 100%" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col class="line" :span="2">-</el-col> |
| | | <el-col :span="11"> |
| | | <el-form-item prop="date2"> |
| | | <el-time-picker |
| | | placeholder="éæ©æ¶é´" |
| | | v-model="ruleForm.date2" |
| | | style="width: 100%" |
| | | ></el-time-picker> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-form-item> |
| | | <el-form-item label="峿¶é
é" prop="delivery"> |
| | | <el-switch v-model="ruleForm.delivery"></el-switch> |
| | | </el-form-item> |
| | | <el-form-item label="æ´»å¨æ§è´¨" prop="type"> |
| | | <el-checkbox-group v-model="ruleForm.type"> |
| | | <el-checkbox label="ç¾é£/é¤å
çº¿ä¸æ´»å¨" name="type"></el-checkbox> |
| | | <el-checkbox label="å°æ¨æ´»å¨" name="type"></el-checkbox> |
| | | <el-checkbox label="线ä¸ä¸»é¢æ´»å¨" name="type"></el-checkbox> |
| | | <el-checkbox label="å纯åçæå
" name="type"></el-checkbox> |
| | | </el-checkbox-group> |
| | | </el-form-item> |
| | | <el-form-item label="ç¹æ®èµæº" prop="resource"> |
| | | <el-radio-group v-model="ruleForm.resource"> |
| | | <el-radio label="线ä¸åçåèµå©"></el-radio> |
| | | <el-radio label="线ä¸åºå°å
è´¹"></el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <el-form-item label="æ´»å¨å½¢å¼" prop="desc"> |
| | | <el-input type="textarea" v-model="ruleForm.desc"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="success" @click="submitForm('ruleForm')" |
| | | >ç«å³å建</el-button |
| | | > |
| | | <el-button type="primary" @click="laststep()">ä¸ä¸æ¥</el-button> |
| | | <el-button @click="resetForm('ruleForm')">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | <!-- é¢è§æ¨¡çå¼¹çª --> |
| | | <el-drawer |
| | | title="é®å·é¢è§" |
| | | :visible.sync="drawer" |
| | | custom-class="demo-drawer" |
| | | width="50%" |
| | | > |
| | | <div class="preview-left"> |
| | | <!-- åé --> |
| | | <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> |
| | | <div class="dev-text"> |
| | | {{ item.idd }}ã[åé]  <span>{{ item.wssd }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio |
| | | v-for="(items, index) in item.sdadd" |
| | | :key="index" |
| | | :label="index" |
| | | >{{ items }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | | </div> |
| | | </div> |
| | | <!-- å¤é --> |
| | | <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> |
| | | <div class="dev-text"> |
| | | {{ item.idd }}ã[å¤é]  <span>{{ item.wssd }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-checkbox-group v-model="radios"> |
| | | <el-checkbox |
| | | v-for="(items, index) in item.sdadd" |
| | | :key="index" |
| | | :label="index" |
| | | > |
| | | {{ items }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </div> |
| | | </div> |
| | | <!-- 填空 --> |
| | | <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> |
| | | <div class="dev-text"> |
| | | {{ item.idd }}ã[填空]  <span>{{ item.wssd }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-input placeholder="请è¾å
¥çæ¡" v-model="radioas" clearable> |
| | | </el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-drawer> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | sidecolumnrabs: "left", //æ¹å |
| | | Editprogress: 2, //ç¼è¾è¿åº¦ |
| | | currentVersion: "1.2.3", //å½åçæ¬ |
| | | loading: false, // é®ç½©å± |
| | | drawer: false, //æ§å¶å±å¼ |
| | | radio: "false", //åéé¢éä¸ |
| | | radios: [], //å¤éé¢éä¸ |
| | | radioas: "", //填空é¢çæ¡ |
| | | // æ»æ¡æ° |
| | | total: 1, |
| | | ruleForm: { |
| | | name: "", |
| | | region: "", |
| | | date1: "", |
| | | date2: "", |
| | | delivery: false, |
| | | type: [], |
| | | resource: "", |
| | | desc: "", |
| | | templatevalue: "", |
| | | data2: "", |
| | | }, |
| | | rules: {}, |
| | | rulesa: { |
| | | name: [ |
| | | { required: true, message: "请è¾å
¥æ´»å¨åç§°", trigger: "blur" }, |
| | | { min: 3, max: 5, message: "é¿åº¦å¨ 3 å° 5 个å符", trigger: "blur" }, |
| | | ], |
| | | region: [ |
| | | { required: true, message: "è¯·éæ©æ´»å¨åºå", trigger: "change" }, |
| | | ], |
| | | date1: [ |
| | | { |
| | | type: "date", |
| | | required: true, |
| | | message: "è¯·éæ©æ¥æ", |
| | | trigger: "change", |
| | | }, |
| | | ], |
| | | date2: [ |
| | | { |
| | | type: "date", |
| | | required: true, |
| | | message: "è¯·éæ©æ¶é´", |
| | | trigger: "change", |
| | | }, |
| | | ], |
| | | type: [ |
| | | { |
| | | type: "array", |
| | | required: true, |
| | | message: "请è³å°éæ©ä¸ä¸ªæ´»å¨æ§è´¨", |
| | | trigger: "change", |
| | | }, |
| | | ], |
| | | resource: [ |
| | | { required: true, message: "è¯·éæ©æ´»å¨èµæº", trigger: "change" }, |
| | | ], |
| | | desc: [{ required: true, message: "è¯·å¡«åæ´»å¨å½¢å¼", trigger: "blur" }], |
| | | }, |
| | | options: [ |
| | | { |
| | | value: "é项1", |
| | | label: "é»éç³", |
| | | }, |
| | | { |
| | | value: "é项2", |
| | | label: "åç®å¥¶", |
| | | }, |
| | | { |
| | | value: "é项3", |
| | | label: "èµä»ç
", |
| | | }, |
| | | { |
| | | value: "é项4", |
| | | label: "é¾é¡»é¢", |
| | | }, |
| | | { |
| | | value: "é项5", |
| | | label: "å京ç¤é¸", |
| | | }, |
| | | ], |
| | | options: [ |
| | | { |
| | | value: "zhinan", |
| | | label: "æå", |
| | | children: [ |
| | | { |
| | | value: "shejiyuanze", |
| | | label: "设计åå", |
| | | children: [ |
| | | { |
| | | value: "yizhi", |
| | | label: "ä¸è´", |
| | | }, |
| | | { |
| | | value: "fankui", |
| | | label: "åé¦", |
| | | }, |
| | | { |
| | | value: "xiaolv", |
| | | label: "æç", |
| | | }, |
| | | { |
| | | value: "kekong", |
| | | label: "坿§", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | value: "daohang", |
| | | label: "导èª", |
| | | children: [ |
| | | { |
| | | value: "cexiangdaohang", |
| | | label: "ä¾§å导èª", |
| | | }, |
| | | { |
| | | value: "dingbudaohang", |
| | | label: "é¡¶é¨å¯¼èª", |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | value: "zujian", |
| | | label: "ç»ä»¶", |
| | | children: [ |
| | | { |
| | | value: "basic", |
| | | label: "Basic", |
| | | children: [ |
| | | { |
| | | value: "layout", |
| | | label: "Layout å¸å±", |
| | | }, |
| | | { |
| | | value: "color", |
| | | label: "Color è²å½©", |
| | | }, |
| | | { |
| | | value: "typography", |
| | | label: "Typography åä½", |
| | | }, |
| | | { |
| | | value: "icon", |
| | | label: "Icon 徿 ", |
| | | }, |
| | | { |
| | | value: "button", |
| | | label: "Button æé®", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | value: "form", |
| | | label: "Form", |
| | | children: [ |
| | | { |
| | | value: "radio", |
| | | label: "Radio åéæ¡", |
| | | }, |
| | | { |
| | | value: "checkbox", |
| | | label: "Checkbox å¤éæ¡", |
| | | }, |
| | | { |
| | | value: "input", |
| | | label: "Input è¾å
¥æ¡", |
| | | }, |
| | | { |
| | | value: "input-number", |
| | | label: "InputNumber 计æ°å¨", |
| | | }, |
| | | { |
| | | value: "select", |
| | | label: "Select éæ©å¨", |
| | | }, |
| | | { |
| | | value: "cascader", |
| | | label: "Cascader 级èéæ©å¨", |
| | | }, |
| | | { |
| | | value: "switch", |
| | | label: "Switch å¼å
³", |
| | | }, |
| | | { |
| | | value: "slider", |
| | | label: "Slider æ»å", |
| | | }, |
| | | { |
| | | value: "time-picker", |
| | | label: "TimePicker æ¶é´éæ©å¨", |
| | | }, |
| | | { |
| | | value: "date-picker", |
| | | label: "DatePicker æ¥æéæ©å¨", |
| | | }, |
| | | { |
| | | value: "datetime-picker", |
| | | label: "DateTimePicker æ¥ææ¶é´éæ©å¨", |
| | | }, |
| | | { |
| | | value: "upload", |
| | | label: "Upload ä¸ä¼ ", |
| | | }, |
| | | { |
| | | value: "rate", |
| | | label: "Rate è¯å", |
| | | }, |
| | | { |
| | | value: "form", |
| | | label: "Form 表å", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | value: "data", |
| | | label: "Data", |
| | | children: [ |
| | | { |
| | | value: "table", |
| | | label: "Table è¡¨æ ¼", |
| | | }, |
| | | { |
| | | value: "tag", |
| | | label: "Tag æ ç¾", |
| | | }, |
| | | { |
| | | value: "progress", |
| | | label: "Progress è¿åº¦æ¡", |
| | | }, |
| | | { |
| | | value: "tree", |
| | | label: "Tree æ å½¢æ§ä»¶", |
| | | }, |
| | | { |
| | | value: "pagination", |
| | | label: "Pagination å页", |
| | | }, |
| | | { |
| | | value: "badge", |
| | | label: "Badge æ è®°", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | value: "notice", |
| | | label: "Notice", |
| | | children: [ |
| | | { |
| | | value: "alert", |
| | | label: "Alert è¦å", |
| | | }, |
| | | { |
| | | value: "loading", |
| | | label: "Loading å è½½", |
| | | }, |
| | | { |
| | | value: "message", |
| | | label: "Message æ¶æ¯æç¤º", |
| | | }, |
| | | { |
| | | value: "message-box", |
| | | label: "MessageBox å¼¹æ¡", |
| | | }, |
| | | { |
| | | value: "notification", |
| | | label: "Notification éç¥", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | value: "navigation", |
| | | label: "Navigation", |
| | | children: [ |
| | | { |
| | | value: "menu", |
| | | label: "NavMenu 导èªèå", |
| | | }, |
| | | { |
| | | value: "tabs", |
| | | label: "Tabs æ ç¾é¡µ", |
| | | }, |
| | | { |
| | | value: "breadcrumb", |
| | | label: "Breadcrumb é¢å
å±", |
| | | }, |
| | | { |
| | | value: "dropdown", |
| | | label: "Dropdown 䏿èå", |
| | | }, |
| | | { |
| | | value: "steps", |
| | | label: "Steps æ¥éª¤æ¡", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | value: "others", |
| | | label: "Others", |
| | | children: [ |
| | | { |
| | | value: "dialog", |
| | | label: "Dialog å¯¹è¯æ¡", |
| | | }, |
| | | { |
| | | value: "tooltip", |
| | | label: "Tooltip æåæç¤º", |
| | | }, |
| | | { |
| | | value: "popover", |
| | | label: "Popover å¼¹åºæ¡", |
| | | }, |
| | | { |
| | | value: "card", |
| | | label: "Card å¡ç", |
| | | }, |
| | | { |
| | | value: "carousel", |
| | | label: "Carousel 走马ç¯", |
| | | }, |
| | | { |
| | | value: "collapse", |
| | | label: "Collapse æå 颿¿", |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | value: "ziyuan", |
| | | label: "èµæº", |
| | | children: [ |
| | | { |
| | | value: "axure", |
| | | label: "Axure Components", |
| | | }, |
| | | { |
| | | value: "sketch", |
| | | label: "Sketch Templates", |
| | | }, |
| | | { |
| | | value: "jiaohu", |
| | | label: "ç»ä»¶äº¤äºææ¡£", |
| | | }, |
| | | ], |
| | | }, |
| | | ], |
| | | valssu: [ |
| | | { |
| | | idd: 1, |
| | | wssd: "ä½ æè¿æä¹æ ·", |
| | | sdadd: ["sss", "ssccss", "ssaas", "ss"], |
| | | }, |
| | | ], |
| | | options: [ |
| | | { |
| | | value: "é项1", |
| | | label: "åé", |
| | | }, |
| | | { |
| | | value: "é项2", |
| | | label: "å¤é", |
| | | disabled: true, |
| | | }, |
| | | { |
| | | value: "é项3", |
| | | label: "填空", |
| | | }, |
| | | ], |
| | | addvalue: "æ·»å é¢ç®", |
| | | // é¢ç®è¡¨æ ¼æ°æ® |
| | | userList: [ |
| | | { |
| | | userid: "1", |
| | | userName: "ä¸å·é®å·", |
| | | }, |
| | | { |
| | | userid: "2", |
| | | userName: "äºå·é®å·", |
| | | }, |
| | | { |
| | | userid: "3", |
| | | userName: "ä¸å·é®å·", |
| | | }, |
| | | { |
| | | userid: "4", |
| | | userName: "åå·é®å·", |
| | | }, |
| | | ], |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | userName: undefined, |
| | | phonenumber: undefined, |
| | | status: undefined, |
| | | deptId: undefined, |
| | | IDnumber: undefined, |
| | | }, |
| | | }; |
| | | }, |
| | | |
| | | created() {}, |
| | | |
| | | methods: { |
| | | submitForm(formName) { |
| | | if (this.Editprogress <= 3) { |
| | | return this.Editprogress++; |
| | | } |
| | | this.rules = this.rulesa; |
| | | // æäº¤ |
| | | this.$refs[formName].validate((valid) => { |
| | | if (valid) { |
| | | alert("submit!"); |
| | | } else { |
| | | console.log("error submit!!"); |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | /** æ¥è¯¢é¢ç®å表 */ |
| | | getList() { |
| | | // this.loading = true; |
| | | listUser().then((response) => { |
| | | console.log(response); |
| | | // this.userList = response.data; |
| | | // this.total = response.total; |
| | | // this.loading = false; |
| | | console.log(this.userList); |
| | | }); |
| | | // const { rows } = await listUser(); |
| | | // console.log(rows); |
| | | // this.list = rows; |
| | | }, |
| | | changeaddtopic(val) { |
| | | console.log(11); |
| | | console.log(val); |
| | | this.addvalue = "æ·»å é¢ç®"; |
| | | }, |
| | | // é¢è§æ¨¡ç |
| | | PreviewTemplate() { |
| | | this.drawer = true; |
| | | }, |
| | | laststep() { |
| | | this.Editprogress--; |
| | | }, |
| | | resetForm(formName) { |
| | | this.$refs[formName].resetFields(); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .Questionnairemanagement { |
| | | display: flex; |
| | | } |
| | | .sidecolumn { |
| | | width: 300px; |
| | | min-height: 100vh; |
| | | text-align: center; |
| | | // display: flex; |
| | | // margin-top: 20px; |
| | | margin: 20px; |
| | | margin-bottom: 0; |
| | | padding: 30px; |
| | | background: #edf1f7; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | } |
| | | .leftvlue { |
| | | // display: flex; |
| | | // flex: 1; |
| | | width: 80%; |
| | | margin-top: 20px; |
| | | // margin: 20px; |
| | | padding: 30px; |
| | | background: #ffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .mulsz { |
| | | font-size: 20px; |
| | | } |
| | | .leftvlue-jbxx { |
| | | margin-bottom: 50px; |
| | | font-size: 20px; |
| | | span { |
| | | position: absolute; |
| | | right: 80px; |
| | | } |
| | | } |
| | | .demo-cascader { |
| | | margin-right: 20px; |
| | | } |
| | | .PreviewTemplate { |
| | | color: #02a7f0; |
| | | cursor: pointer; |
| | | font-size: 20px; |
| | | margin: 0 20px; |
| | | } |
| | | } |
| | | .preview-left { |
| | | margin: 20px; |
| | | // margin: 20px; |
| | | padding: 30px; |
| | | background: #ffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .topic-dev { |
| | | margin-bottom: 25px; |
| | | font-size: 20px !important; |
| | | .dev-text { |
| | | margin-bottom: 10px; |
| | | } |
| | | } |
| | | } |
| | | .addtopic { |
| | | margin-top: 30px; |
| | | } |
| | | .presentation { |
| | | margin: 20px 0; |
| | | display: flex; |
| | | .presentation-left { |
| | | width: 50%; |
| | | height: 500px; |
| | | .button-textxg { |
| | | color: #024df0; |
| | | } |
| | | .button-textsc { |
| | | color: #f52727; |
| | | } |
| | | } |
| | | .presentation-right { |
| | | width: 50%; |
| | | height: 500px; |
| | | padding: 20px; |
| | | font-size: 18px; |
| | | border: 1px solid #909091; |
| | | span { |
| | | padding: 0 35px; |
| | | margin-right: 10px; |
| | | border-bottom: 1px solid #909091; |
| | | } |
| | | .headline { |
| | | font-size: 20px; |
| | | border-left: 3px solid #41a1be; |
| | | padding-left: 5px; |
| | | margin: 15px 0; |
| | | } |
| | | } |
| | | } |
| | | ::v-deep .addtopic-input { |
| | | input { |
| | | background: #02a7f0; |
| | | color: #edf1f7; |
| | | width: 150px; |
| | | } |
| | | } |
| | | ::v-deep.el-step.is-vertical .el-step__title { |
| | | font-size: 25px; |
| | | } |
| | | ::v-deep.el-input--medium { |
| | | font-size: 24px !important; |
| | | } |
| | | ::v-deep.ruleFormaa.el-select { |
| | | display: inline-block; |
| | | position: relative; |
| | | width: 700px; |
| | | } |
| | | .el-select__tags { |
| | | font-size: 20px; |
| | | max-width: 888px !important; |
| | | } |
| | | ::v-deep.el-radio__inner { |
| | | width: 22px; |
| | | height: 22px; |
| | | } |
| | | // ::v-deep.topic-dev.el-radio__label { |
| | | // font-size: 24px; |
| | | // } |
| | | ::v-deep.el-radio-group { |
| | | span { |
| | | font-size: 24px; |
| | | } |
| | | } |
| | | ::v-deep.el-checkbox-group { |
| | | span { |
| | | font-size: 24px; |
| | | } |
| | | } |
| | | // ::v-deep.el-form-item--medium .el-form-item__content { |
| | | // line-height: 36px; |
| | | // display: flex; |
| | | // } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="examineemanagement"> |
| | | <!-- 左侧æ --> |
| | | |
| | | <div class="sidecolumn"> |
| | | <div class="sidecolumn-top"> |
| | | <div class="top-wj">åå²çæ¬</div> |
| | | <!-- <div class="top-tj" @click="dialogFormVisible = true">+æ·»å </div> --> |
| | | </div> |
| | | <div class="bottom-fl"> |
| | | <el-tabs tab-position="right" v-model="activeName"> |
| | | <el-tab-pane |
| | | class="tab-paness" |
| | | :key="index" |
| | | v-for="(item, index) in editableTabs" |
| | | > |
| | | <div class="mulsz" slot="label"> |
| | | {{ item.versionsac |
| | | }}<span style="margin-left: 30px">{{ |
| | | item.startUsing ? "å¯ç¨" : "ç¦ç¨" |
| | | }}</span> |
| | | </div> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </div> |
| | | <!-- å³ä¾§æ°æ® --> |
| | | |
| | | <div class="leftvlue"> |
| | | <div v-if="activeName == '0'"> |
| | | <div class="examine-top"> |
| | | <span>ç¼è¾äººï¼{{ basicInformation.name }}</span> |
| | | <span>ç¼è¾æ¶é´ï¼{{ basicInformation.day }}</span> |
| | | <span class="ewmyl">äºç»´ç é¢è§</span> |
| | | </div> |
| | | <!-- åºç¡ä¿¡æ¯ --> |
| | | <div class="examine-jic"> |
| | | <div class="headline">åºç¡ä¿¡æ¯</div> |
| | | <div class="jic-value"> |
| | | <div> |
| | | é®å·åç§°ï¼{{ basicInformation.wname |
| | | }}<span>éç¨ç¾ç
ï¼{{ basicInformation.jbname }}</span> |
| | | </div> |
| | | <div>表åæè¿°ï¼{{ basicInformation.miaosname }}</div> |
| | | </div> |
| | | </div> |
| | | <!-- é®å·é¢è§ --> |
| | | <div class="examine-jic"> |
| | | <div class="headline">é®å·é¢è§</div> |
| | | <div class="jic-value"> |
| | | <div> |
| | | é®å·ä»ç»ï¼<span class="wenjuanjs" |
| | | >é常好é常好é常好é常好é常好é常好é常好é常好</span |
| | | > |
| | | </div> |
| | | <div> |
| | | é®å·ä»ç»ï¼<span class="wenjuanjs" |
| | | >é常好é常好é常好é常好é常好é常好</span |
| | | > |
| | | </div> |
| | | </div> |
| | | <div class="preview-left"> |
| | | <!-- åé --> |
| | | <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> |
| | | <div class="dev-text"> |
| | | {{ item.idd }}ã[åé]  <span>{{ item.wssd }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio |
| | | v-for="(items, index) in item.sdadd" |
| | | :key="index" |
| | | :label="index" |
| | | >{{ items }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | | </div> |
| | | </div> |
| | | <!-- å¤é --> |
| | | <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> |
| | | <div class="dev-text"> |
| | | {{ item.idd }}ã[å¤é]  <span>{{ item.wssd }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-checkbox-group v-model="radios"> |
| | | <el-checkbox |
| | | v-for="(items, index) in item.sdadd" |
| | | :key="index" |
| | | :label="index" |
| | | > |
| | | {{ items }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </div> |
| | | </div> |
| | | <!-- 填空 --> |
| | | <div class="topic-dev" v-for="item in valssu" :key="item.aaa"> |
| | | <div class="dev-text"> |
| | | {{ item.idd }}ã[填空]  <span>{{ item.wssd }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-input placeholder="请è¾å
¥çæ¡" v-model="radioas" clearable> |
| | | </el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="examine-jieg"> |
| | | <div class="headline">ç»æåé¦</div> |
| | | <div></div> |
| | | <div></div> |
| | | </div> |
| | | </div> |
| | | <div v-else-if="activeName == '1'">bbb</div> |
| | | <div v-else-if="activeName == '2'">ccc</div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | activeName: "0", |
| | | radios: [], //å¤éé¢éä¸ |
| | | |
| | | basicInformation: { |
| | | name: "èå´", |
| | | day: "2023å¹´12æ11æ¥16æ¶12å11ç§", |
| | | wname: "大大大", |
| | | jbname: "å°å°å°", |
| | | miaosname: "é常好大大大", |
| | | }, |
| | | valssu: [ |
| | | { |
| | | idd: 1, |
| | | wssd: "ä½ æè¿æä¹æ ·", |
| | | sdadd: ["sss", "ssccss", "ssaas", "ss"], |
| | | }, |
| | | ], |
| | | editableTabs: [ |
| | | { |
| | | versionsac: "1.0.3", |
| | | startUsing: true, |
| | | }, |
| | | { |
| | | versionsac: "1.0.2", |
| | | startUsing: false, |
| | | }, |
| | | { |
| | | versionsac: "1.0.1", |
| | | startUsing: false, |
| | | }, |
| | | ], |
| | | }; |
| | | }, |
| | | |
| | | created() {}, |
| | | |
| | | methods: { |
| | | handleClick() {}, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .examineemanagement { |
| | | display: flex; |
| | | .sidecolumn { |
| | | width: 300px; |
| | | min-height: 100vh; |
| | | text-align: center; |
| | | // display: flex; |
| | | margin-top: 20px; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | background: #edf1f7; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .sidecolumn-top { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | .top-wj { |
| | | font-size: 20px; |
| | | } |
| | | .top-tj { |
| | | font-size: 18px; |
| | | |
| | | color: rgb(0, 89, 255); |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | .center-ss { |
| | | margin-top: 30px; |
| | | .input-with-select { |
| | | height: 40px !important; |
| | | } |
| | | } |
| | | .bottom-fl { |
| | | margin-top: 30px; |
| | | display: center !important; |
| | | } |
| | | } |
| | | .leftvlue { |
| | | width: 80%; |
| | | margin-top: 20px; |
| | | // margin: 20px; |
| | | padding: 30px; |
| | | background: #ffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .mulsz { |
| | | font-size: 20px; |
| | | span { |
| | | margin-left: 30px; |
| | | } |
| | | } |
| | | .examine-top { |
| | | font-size: 20px; |
| | | margin-bottom: 40px; |
| | | span { |
| | | margin-right: 30px; |
| | | } |
| | | .ewmyl { |
| | | color: rgb(0, 81, 255); |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | .examine-jic { |
| | | .headline { |
| | | font-size: 28px; |
| | | border-left: 8px solid #41a1be; |
| | | padding-left: 5px; |
| | | margin-bottom: 15px; |
| | | } |
| | | .jic-value { |
| | | font-size: 20px; |
| | | border-top: 1px solid #a7abac; |
| | | padding: 20px; |
| | | div { |
| | | margin-bottom: 15px; |
| | | span { |
| | | margin-left: 180px; |
| | | } |
| | | } |
| | | .wenjuanjs { |
| | | margin-left: 15px; |
| | | padding-bottom: 5px; |
| | | border-bottom: 1px solid #a7abac; |
| | | } |
| | | } |
| | | .preview-left { |
| | | margin: 20px; |
| | | // margin: 20px; |
| | | padding: 30px; |
| | | background: #ffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .topic-dev { |
| | | margin-bottom: 25px; |
| | | font-size: 20px !important; |
| | | .dev-text { |
| | | margin-bottom: 10px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .examine-jieg { |
| | | .headline { |
| | | font-size: 28px; |
| | | padding-left: 5px; |
| | | border-left: 8px solid #41a1be; |
| | | // border-bottom: 1px solid #41a1be; |
| | | margin-bottom: 15px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | ::v-deep.el-tabs--left, |
| | | .el-tabs--right { |
| | | overflow: hidden; |
| | | align-items: center; |
| | | display: flex; |
| | | } |
| | | ::v-deep.el-input--medium .el-input__inner { |
| | | height: 40px !important; |
| | | } |
| | | ::v-deep.el-tabs--right .el-tabs__active-bar.is-right { |
| | | height: 40px; |
| | | width: 5px; |
| | | left: 0; |
| | | } |
| | | ::v-deep.el-tabs--right .el-tabs__item.is-right { |
| | | display: block; |
| | | font-size: 20px; |
| | | } |
| | | ::v-deep.el-radio-group { |
| | | span { |
| | | font-size: 24px; |
| | | } |
| | | } |
| | | ::v-deep.el-checkbox-group { |
| | | span { |
| | | font-size: 24px; |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="Questionnairemanagement"> |
| | | <!-- 左侧æ --> |
| | | <div class="sidecolumn"> |
| | | <div class="sidecolumn-top"> |
| | | <div class="top-wj">é®å·ç±»å</div> |
| | | <div class="top-tj" @click="dialogFormVisible = true">+æ·»å </div> |
| | | </div> |
| | | <div class="center-ss"> |
| | | <el-input |
| | | placeholder="请è¾å
¥å
容" |
| | | v-model="sidecolumnval" |
| | | class="input-with-select" |
| | | size="medium " |
| | | > |
| | | <el-button |
| | | @click="sidecolumnss" |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | ></el-button> |
| | | </el-input> |
| | | </div> |
| | | <div class="bottom-fl"> |
| | | <el-tabs tab-position="right"> |
| | | <el-tab-pane :label="`å
¨é¨ (${numberlb})`"></el-tab-pane> |
| | | <el-tab-pane |
| | | class="tab-paness" |
| | | :key="item.name" |
| | | v-for="(item, index) in editableTabs" |
| | | :label="item.title + ' (' + item.number + ')'" |
| | | ></el-tab-pane> |
| | | |
| | | <el-tab-pane :label="`æªåç»(${numberlbs})`"></el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </div> |
| | | <!-- å³ä¾§æ°æ® --> |
| | | <div class="leftvlue"> |
| | | <div class="leftvlue-top"> |
| | | <el-tabs v-model="topactiveName" @tab-click="tophandleClick"> |
| | | <el-tab-pane name="Local"> |
| | | <span class="mulsz" slot="label">æ¬å°é®å·åº </span> |
| | | </el-tab-pane> |
| | | <el-tab-pane name="sharing"> |
| | | <span class="mulsz" slot="label">å
±äº«é®å·åº </span> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | <div class="leftvlue-bg"> |
| | | <el-row :gutter="20"> |
| | | <!--ç¨æ·æ°æ®--> |
| | | <el-col :span="24" :xs="24"> |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="é®å·åç§°" prop="userName"> |
| | | <el-input |
| | | v-model="queryParams.userName" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="éç¨ç¾ç
" prop="status"> |
| | | <el-cascader |
| | | v-model="queryParams.status" |
| | | :options="optionss" |
| | | :props="propss" |
| | | clearable |
| | | ></el-cascader> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="medium" |
| | | @click="handleQuery" |
| | | >æç´¢</el-button |
| | | > |
| | | <el-button |
| | | icon="el-icon-refresh" |
| | | size="medium" |
| | | @click="resetQuery" |
| | | >éç½®</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | v-hasPermi="['system:user:add']" |
| | | >æ°å¢</el-button |
| | | > |
| | | </el-col> |
| | | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="medium" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['system:user:remove']" |
| | | >å é¤</el-button |
| | | > |
| | | </el-col> |
| | | |
| | | <!-- <el-col :span="1.5"> </el-col> --> |
| | | </el-row> |
| | | <!-- <right-toolbar |
| | | :showSearch.sync="showSearch" |
| | | @queryTable="getList" |
| | | :columns="columns" |
| | | ></right-toolbar> --> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="userList" |
| | | border="true" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | | <el-table-column |
| | | label="åºå·" |
| | | align="center" |
| | | key="userId" |
| | | prop="userId" |
| | | v-if="columns[0].visible" |
| | | /> |
| | | <el-table-column |
| | | label="é®å·åç§°" |
| | | align="center" |
| | | key="userName" |
| | | prop="userName" |
| | | v-if="columns[1].visible" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="çæ¬" |
| | | align="center" |
| | | key="nickName" |
| | | prop="nickName" |
| | | v-if="columns[2].visible" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="éç¨ç¾ç
" |
| | | align="center" |
| | | key="aphonenumber" |
| | | prop="aphonenumber" |
| | | v-if="columns[4].visible" |
| | | width="120" |
| | | /><el-table-column |
| | | label="é®å·æè¿°" |
| | | align="center" |
| | | key="bphonenumber" |
| | | prop="bphonenumber" |
| | | v-if="columns[4].visible" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="æè¿ç¼è¾" |
| | | align="center" |
| | | key="cphonenumber" |
| | | prop="cphonenumber" |
| | | v-if="columns[4].visible" |
| | | width="120" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="æä½" |
| | | align="center" |
| | | width="300" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="goQRCode(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | > |
| | | <span class="button-text" |
| | | ><i class="el-icon-edit"></i>äºç»´ç </span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="ViewQuestionnaire(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textck" |
| | | ><i class="el-icon-edit"></i>æ¥ç</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textxg" |
| | | ><i class="el-icon-edit"></i>ä¿®æ¹</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:user:remove']" |
| | | ><span class="button-textsc" |
| | | ><i class="el-icon-edit"></i>å é¤</span |
| | | ></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-col> |
| | | </el-row> |
| | | |
| | | <!-- æ·»å æä¿®æ¹é®å·é
ç½®å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | :title="title" |
| | | :visible.sync="open" |
| | | width="900px" |
| | | append-to-body |
| | | > |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="100px"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å§å" prop="nickName"> |
| | | <el-input |
| | | v-model="form.nickName" |
| | | placeholder="请è¾å
¥å§å" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ§å«" prop="deptId"> |
| | | <el-select v-model="form.sex" placeholder="è¯·éæ©æ§å«"> |
| | | <el-option |
| | | v-for="dict in dict.type.sys_user_sex" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è¯ä»¶ç±»å" prop="phonenumber"> |
| | | <el-input |
| | | v-model="form.phonenumber" |
| | | placeholder="è¯·éæ©è¯ä»¶ç±»å" |
| | | maxlength="11" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è¯ä»¶å·" prop="email"> |
| | | <el-input |
| | | v-model="form.email" |
| | | placeholder="请è¾å
¥è¯ä»¶å·" |
| | | maxlength="50" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ¬äººææºå·" prop="userName"> |
| | | <el-input |
| | | v-model="form.userName" |
| | | placeholder="请è¾å
¥ææºå·" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="äº²å±ææºå·" prop="password"> |
| | | <el-input |
| | | v-model="form.password" |
| | | placeholder="请è¾å
¥äº²å±ææºå·" |
| | | type="password" |
| | | maxlength="20" |
| | | show-password |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ£è
æ ç¾"> |
| | | <el-cascader |
| | | :options="optionss" |
| | | :props="propss" |
| | | clearable |
| | | ></el-cascader> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="夿³¨"> |
| | | <el-input |
| | | v-model="form.remark" |
| | | type="textarea" |
| | | placeholder="请è¾å
¥å
容" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">ç¡® å®</el-button> |
| | | <el-button @click="cancel">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </div> |
| | | <!-- æ·»å ç±»å«å¼¹æ¡ --> |
| | | <el-dialog width="30%" :visible.sync="dialogFormVisible"> |
| | | <el-form :model="sidecolumnform"> |
| | | <el-form-item label="请è¾å
¥ç±»å«åç§°"> |
| | | <el-input v-model="form.name" autocomplete="off"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogFormVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitsidecolumn">ç¡® å®</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- äºç»´ç å±ç¤ºå¼¹æ¡ --> |
| | | <el-dialog width="30%" :visible.sync="goQRCodeVisible"> |
| | | <div class="qrcode-dialo"> |
| | | <div class="qrcode-text"> |
| | | {{ namequestionnaire }}<span>{{ haoquestionnaire }}</span> |
| | | </div> |
| | | <div class="qrcode-img"></div> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | listUser, |
| | | getUser, |
| | | delUser, |
| | | addUser, |
| | | updateUser, |
| | | } from "@/api/system/user"; |
| | | import { getToken } from "@/utils/auth"; |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | export default { |
| | | name: "questionnaire", |
| | | dicts: ["sys_normal_disable", "sys_user_sex"], |
| | | components: { Treeselect }, |
| | | data() { |
| | | return { |
| | | topactiveName: "Local", //é¡¶é¨éæ© |
| | | // é®ç½©å± |
| | | loading: false, |
| | | // é䏿°ç» |
| | | ids: [], |
| | | // éå个ç¦ç¨ |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | namequestionnaire: "", |
| | | haoquestionnaire: "", |
| | | // ç¨æ·è¡¨æ ¼æ°æ® |
| | | userList: [ |
| | | { |
| | | userid: 1, |
| | | userName: "ä¸å·é®å·", |
| | | nickName: "1.2.4", |
| | | aphonenumber: "å
³èçç", |
| | | bphonenumber: "徿£", |
| | | cphonenumber: "2022-12-12 ", |
| | | }, |
| | | ], |
| | | // å¼¹åºå±æ é¢ |
| | | title: "", |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå± |
| | | open: false, |
| | | // æ¥æèå´ |
| | | dateRange: [], |
| | | // å²ä½é项 |
| | | postOptions: [], |
| | | // è§è²é项 |
| | | roleOptions: [], |
| | | // 表ååæ° |
| | | form: {}, |
| | | numberlb: 22, |
| | | numberlbs: 2, |
| | | sidecolumnform: {}, //æ·»å ç±»å«è¡¨å |
| | | dialogFormVisible: false, //æ·»å ç±»å«å¼¹æ¡ |
| | | goQRCodeVisible: false, //äºç»´ç å¼¹æ¡ |
| | | sidecolumnval: "", //ç±»å«æç´¢ |
| | | propss: { multiple: true }, |
| | | optionss: [ |
| | | { |
| | | value: 1, |
| | | label: "ä¸å", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "西å", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "仨仨仨", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "å
é£é£é£", |
| | | }, |
| | | ], |
| | | //ç±»å«å表 |
| | | editableTabs: [ |
| | | { |
| | | title: "é®å·åç±»ä¸", |
| | | number: "1", |
| | | }, |
| | | { |
| | | title: "é®å·åç±»äº", |
| | | number: "2", |
| | | }, |
| | | { |
| | | title: "é®å·åç±»ä¸", |
| | | number: "2", |
| | | }, |
| | | { |
| | | title: "é®å·åç±»å", |
| | | number: "2", |
| | | }, |
| | | { |
| | | title: "é®å·åç±»äº", |
| | | number: "2", |
| | | }, |
| | | ], |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | userName: undefined, |
| | | phonenumber: undefined, |
| | | status: undefined, |
| | | deptId: undefined, |
| | | IDnumber: undefined, |
| | | }, |
| | | // åä¿¡æ¯ |
| | | columns: [ |
| | | { key: 0, label: `ç¨æ·ç¼å·`, visible: true }, |
| | | { key: 1, label: `ç¨æ·åç§°`, visible: true }, |
| | | { key: 2, label: `ç¨æ·æµç§°`, visible: true }, |
| | | { key: 3, label: `é¨é¨`, visible: true }, |
| | | { key: 4, label: `ææºå·ç `, visible: true }, |
| | | { key: 5, label: `ç¶æ`, visible: true }, |
| | | { key: 6, label: `å建æ¶é´`, visible: true }, |
| | | ], |
| | | // è¡¨åæ ¡éª |
| | | rules: { |
| | | userName: [ |
| | | { required: true, message: "ç¨æ·åç§°ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | { |
| | | min: 2, |
| | | max: 20, |
| | | message: "ç¨æ·åç§°é¿åº¦å¿
é¡»ä»äº 2 å 20 ä¹é´", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | nickName: [ |
| | | { required: true, message: "ç¨æ·æµç§°ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | ], |
| | | password: [ |
| | | { required: true, message: "ç¨æ·å¯ç ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | { |
| | | min: 5, |
| | | max: 20, |
| | | message: "ç¨æ·å¯ç é¿åº¦å¿
é¡»ä»äº 5 å 20 ä¹é´", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | email: [ |
| | | { |
| | | type: "email", |
| | | message: "请è¾å
¥æ£ç¡®çé®ç®±å°å", |
| | | trigger: ["blur", "change"], |
| | | }, |
| | | ], |
| | | phonenumber: [ |
| | | { |
| | | pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, |
| | | message: "请è¾å
¥æ£ç¡®çææºå·ç ", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | IDnumber: [ |
| | | { |
| | | pattern: |
| | | /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/, |
| | | message: "请è¾å
¥æ£ç¡®ç身份è¯å·ç ", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | watch: {}, |
| | | created() { |
| | | this.getList(); |
| | | }, |
| | | |
| | | methods: { |
| | | /** æ¥è¯¢ç¨æ·å表 */ |
| | | getList() { |
| | | // this.loading = true; |
| | | listUser().then((response) => { |
| | | console.log(response); |
| | | // this.userList = response.data; |
| | | // this.total = response.total; |
| | | // this.loading = false; |
| | | console.log(this.userList); |
| | | }); |
| | | // const { rows } = await listUser(); |
| | | // console.log(rows); |
| | | // this.list = rows; |
| | | }, |
| | | // æ·»å ç±»å« |
| | | submitsidecolumn() { |
| | | this.dialogFormVisible = false; |
| | | }, |
| | | //æç´¢ç±»å« |
| | | sidecolumnss() {}, |
| | | // 忢å
±äº«/æ¬å° |
| | | tophandleClick() {}, |
| | | // åæ¶æé® |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | goQRCode(row) { |
| | | this.goQRCodeVisible = true; |
| | | this.namequestionnaire = row.userName; |
| | | this.haoquestionnaire = row.nickName; |
| | | }, |
| | | // 表åéç½® |
| | | reset() { |
| | | this.form = { |
| | | userId: undefined, |
| | | deptId: undefined, |
| | | userName: undefined, |
| | | nickName: undefined, |
| | | password: undefined, |
| | | phonenumber: undefined, |
| | | email: undefined, |
| | | sex: undefined, |
| | | status: "0", |
| | | remark: undefined, |
| | | postIds: [], |
| | | roleIds: [], |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.resetForm("queryForm"); |
| | | this.queryParams.deptId = undefined; |
| | | this.$refs.tree.setCurrentKey(null); |
| | | this.handleQuery(); |
| | | }, |
| | | // å¤éæ¡é䏿°æ® |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map((item) => item.userId); |
| | | this.single = selection.length != 1; |
| | | this.multiple = !selection.length; |
| | | }, |
| | | /** æ°å¢æé®æä½ */ |
| | | handleAdd() { |
| | | this.$router.push({ |
| | | path: "/knowledge/questionnaire/compilequer/", |
| | | }); |
| | | }, |
| | | /** ä¿®æ¹æé®æä½ */ |
| | | handleUpdate(row) { |
| | | this.$router.push({ |
| | | path: "/knowledge/questionnaire/compilequer/", |
| | | query: { id: "1" }, |
| | | }); |
| | | }, |
| | | // æ¥çé®å· |
| | | ViewQuestionnaire() { |
| | | this.$router.push({ |
| | | path: "/knowledge/questionnaire/examine/", |
| | | query: { id: "1" }, |
| | | }); |
| | | }, |
| | | |
| | | /** æ´æ°/ä¿®æ¹æäº¤æé® */ |
| | | submitForm: function () { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | if (this.form.userId != undefined) { |
| | | updateUser(this.form).then((response) => { |
| | | this.$modal.msgSuccess("ä¿®æ¹æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } else { |
| | | addUser(this.form).then((response) => { |
| | | this.$modal.msgSuccess("æ°å¢æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | /** å é¤æé®æä½ */ |
| | | handleDelete(row) { |
| | | const userIds = row.userId || this.ids; |
| | | this.$modal |
| | | .confirm('æ¯å¦ç¡®è®¤å é¤ç¨æ·ç¼å·ä¸º"' + userIds + '"çæ°æ®é¡¹ï¼') |
| | | .then(function () { |
| | | return delUser(userIds); |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .Questionnairemanagement { |
| | | display: flex; |
| | | } |
| | | .sidecolumn { |
| | | width: 300px; |
| | | min-height: 100vh; |
| | | text-align: center; |
| | | // display: flex; |
| | | margin-top: 20px; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | background: #edf1f7; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .sidecolumn-top { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | .top-wj { |
| | | font-size: 20px; |
| | | } |
| | | .top-tj { |
| | | font-size: 18px; |
| | | |
| | | color: rgb(0, 89, 255); |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | .center-ss { |
| | | margin-top: 30px; |
| | | .input-with-select { |
| | | height: 40px !important; |
| | | } |
| | | } |
| | | .bottom-fl { |
| | | margin-top: 30px; |
| | | display: center !important; |
| | | } |
| | | } |
| | | .qrcode-dialo { |
| | | text-align: center; |
| | | // display: flex; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | background: #edf1f7; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .qrcode-text { |
| | | font-size: 20px; |
| | | span { |
| | | margin-left: 20px; |
| | | } |
| | | } |
| | | .qrcode-img { |
| | | width: 300px; |
| | | height: 400px; |
| | | } |
| | | } |
| | | ::v-deep.el-tabs--left, |
| | | .el-tabs--right { |
| | | overflow: hidden; |
| | | align-items: center; |
| | | display: flex; |
| | | } |
| | | ::v-deep.el-input--medium .el-input__inner { |
| | | height: 40px !important; |
| | | } |
| | | ::v-deep.el-tabs--right .el-tabs__active-bar.is-right { |
| | | height: 40px; |
| | | width: 5px; |
| | | left: 0; |
| | | } |
| | | ::v-deep.el-tabs--right .el-tabs__item.is-right { |
| | | display: block; |
| | | font-size: 20px; |
| | | } |
| | | .leftvlue { |
| | | // display: flex; |
| | | // flex: 1; |
| | | width: 80%; |
| | | margin-top: 20px; |
| | | // margin: 20px; |
| | | padding: 30px; |
| | | background: #ffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .mulsz { |
| | | font-size: 20px; |
| | | } |
| | | } |
| | | .button-text { |
| | | color: rgb(70, 204, 238); |
| | | } |
| | | .button-textck { |
| | | color: rgb(39, 167, 67); |
| | | } |
| | | .button-textxg { |
| | | color: rgb(35, 81, 233); |
| | | } |
| | | .button-textsc { |
| | | color: rgb(235, 23, 23); |
| | | } |
| | | </style> |
ÎļþÃû´Ó ruoyi-ui/src/views/login.vue ÐÞ¸Ä |
| | |
| | | <template> |
| | | <div class="login"> |
| | | <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form"> |
| | | <el-form |
| | | ref="loginForm" |
| | | :model="loginForm" |
| | | :rules="loginRules" |
| | | class="login-form" |
| | | > |
| | | <h3 class="title">æºæ
§é访管çç³»ç»</h3> |
| | | <el-form-item prop="username"> |
| | | <el-input |
| | |
| | | auto-complete="off" |
| | | placeholder="è´¦å·" |
| | | > |
| | | <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> |
| | | <svg-icon |
| | | slot="prefix" |
| | | icon-class="user" |
| | | class="el-input__icon input-icon" |
| | | /> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="password"> |
| | |
| | | placeholder="å¯ç " |
| | | @keyup.enter.native="handleLogin" |
| | | > |
| | | <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> |
| | | <svg-icon |
| | | slot="prefix" |
| | | icon-class="password" |
| | | class="el-input__icon input-icon" |
| | | /> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="code" v-if="captchaEnabled"> |
| | |
| | | style="width: 63%" |
| | | @keyup.enter.native="handleLogin" |
| | | > |
| | | <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" /> |
| | | <svg-icon |
| | | slot="prefix" |
| | | icon-class="validCode" |
| | | class="el-input__icon input-icon" |
| | | /> |
| | | </el-input> |
| | | <div class="login-code"> |
| | | <img :src="codeUrl" @click="getCode" class="login-code-img"/> |
| | | <img :src="codeUrl" @click="getCode" class="login-code-img" /> |
| | | </div> |
| | | </el-form-item> |
| | | <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">è®°ä½å¯ç </el-checkbox> |
| | | <el-form-item style="width:100%;"> |
| | | <el-checkbox |
| | | v-model="loginForm.rememberMe" |
| | | style="margin: 0px 0px 25px 0px" |
| | | >è®°ä½å¯ç </el-checkbox |
| | | > |
| | | <el-form-item style="width: 100%"> |
| | | <el-button |
| | | :loading="loading" |
| | | size="medium" |
| | | type="primary" |
| | | style="width:100%;" |
| | | style="width: 100%" |
| | | @click.native.prevent="handleLogin" |
| | | > |
| | | <span v-if="!loading">ç» å½</span> |
| | | <span v-else>ç» å½ ä¸...</span> |
| | | </el-button> |
| | | <div style="float: right;" v-if="register"> |
| | | <router-link class="link-type" :to="'/register'">ç«å³æ³¨å1</router-link> |
| | | <div style="float: right" v-if="register"> |
| | | <router-link class="link-type" :to="'/register'" |
| | | >ç«å³æ³¨å1</router-link |
| | | > |
| | | </div> |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | <script> |
| | | import { getCodeImg } from "@/api/login"; |
| | | import Cookies from "js-cookie"; |
| | | import { encrypt, decrypt } from '@/utils/jsencrypt' |
| | | import { encrypt, decrypt } from "@/utils/jsencrypt"; |
| | | |
| | | export default { |
| | | name: "Login", |
| | |
| | | password: "admin123", |
| | | rememberMe: false, |
| | | code: "", |
| | | uuid: "" |
| | | uuid: "", |
| | | }, |
| | | loginRules: { |
| | | username: [ |
| | | { required: true, trigger: "blur", message: "请è¾å
¥æ¨çè´¦å·" } |
| | | { required: true, trigger: "blur", message: "请è¾å
¥æ¨çè´¦å·" }, |
| | | ], |
| | | password: [ |
| | | { required: true, trigger: "blur", message: "请è¾å
¥æ¨çå¯ç " } |
| | | { required: true, trigger: "blur", message: "请è¾å
¥æ¨çå¯ç " }, |
| | | ], |
| | | code: [{ required: true, trigger: "change", message: "请è¾å
¥éªè¯ç " }] |
| | | code: [{ required: true, trigger: "change", message: "请è¾å
¥éªè¯ç " }], |
| | | }, |
| | | loading: false, |
| | | // éªè¯ç å¼å
³ |
| | | captchaEnabled: true, |
| | | // 注åå¼å
³ |
| | | register: false, |
| | | redirect: undefined |
| | | redirect: undefined, |
| | | }; |
| | | }, |
| | | watch: { |
| | | $route: { |
| | | handler: function(route) { |
| | | handler: function (route) { |
| | | this.redirect = route.query && route.query.redirect; |
| | | }, |
| | | immediate: true |
| | | } |
| | | immediate: true, |
| | | }, |
| | | }, |
| | | created() { |
| | | this.getCode(); |
| | |
| | | }, |
| | | methods: { |
| | | getCode() { |
| | | getCodeImg().then(res => { |
| | | this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled; |
| | | getCodeImg().then((res) => { |
| | | this.captchaEnabled = |
| | | res.captchaEnabled === undefined ? true : res.captchaEnabled; |
| | | if (this.captchaEnabled) { |
| | | this.codeUrl = "data:image/gif;base64," + res.img; |
| | | this.loginForm.uuid = res.uuid; |
| | |
| | | getCookie() { |
| | | const username = Cookies.get("username"); |
| | | const password = Cookies.get("password"); |
| | | const rememberMe = Cookies.get('rememberMe') |
| | | const rememberMe = Cookies.get("rememberMe"); |
| | | this.loginForm = { |
| | | username: username === undefined ? this.loginForm.username : username, |
| | | password: password === undefined ? this.loginForm.password : decrypt(password), |
| | | rememberMe: rememberMe === undefined ? false : Boolean(rememberMe) |
| | | password: |
| | | password === undefined ? this.loginForm.password : decrypt(password), |
| | | rememberMe: rememberMe === undefined ? false : Boolean(rememberMe), |
| | | }; |
| | | }, |
| | | handleLogin() { |
| | | this.$refs.loginForm.validate(valid => { |
| | | this.$refs.loginForm.validate((valid) => { |
| | | if (valid) { |
| | | this.loading = true; |
| | | if (this.loginForm.rememberMe) { |
| | | Cookies.set("username", this.loginForm.username, { expires: 30 }); |
| | | Cookies.set("password", encrypt(this.loginForm.password), { expires: 30 }); |
| | | Cookies.set('rememberMe', this.loginForm.rememberMe, { expires: 30 }); |
| | | Cookies.set("password", encrypt(this.loginForm.password), { |
| | | expires: 30, |
| | | }); |
| | | Cookies.set("rememberMe", this.loginForm.rememberMe, { |
| | | expires: 30, |
| | | }); |
| | | } else { |
| | | Cookies.remove("username"); |
| | | Cookies.remove("password"); |
| | | Cookies.remove('rememberMe'); |
| | | Cookies.remove("rememberMe"); |
| | | } |
| | | this.$store.dispatch("Login", this.loginForm).then(() => { |
| | | this.$router.push({ path: this.redirect || "/" }).catch(()=>{}); |
| | | }).catch(() => { |
| | | this.loading = false; |
| | | if (this.captchaEnabled) { |
| | | this.getCode(); |
| | | } |
| | | }); |
| | | this.$store |
| | | .dispatch("Login", this.loginForm) |
| | | .then(() => { |
| | | this.$router.push({ path: this.redirect || "/" }).catch(() => {}); |
| | | }) |
| | | .catch(() => { |
| | | this.loading = false; |
| | | if (this.captchaEnabled) { |
| | | this.getCode(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
ÎļþÃû´Ó ruoyi-ui/src/views/monitor/job/index.vue ÐÞ¸Ä |
| | |
| | | <script> |
| | | import { listJob, getJob, delJob, addJob, updateJob, runJob, changeJobStatus } from "@/api/monitor/job"; |
| | | import Crontab from '@/components/Crontab' |
| | | import * as echarts from "echarts"; |
| | | |
| | | |
| | | export default { |
| | | components: { Crontab }, |
copy from ruoyi-ui/src/views/system/user/authRole.vue
copy to src/views/patient/patient/authRole.vue
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-row :gutter="20"> |
| | | <!--é¨é¨æ°æ®--> |
| | | <!-- <el-col :span="4" :xs="24"> |
| | | <div class="head-container"> |
| | | <el-input |
| | | v-model="deptName" |
| | | placeholder="请è¾å
¥é¨é¨åç§°" |
| | | clearable |
| | | size="small" |
| | | prefix-icon="el-icon-search" |
| | | style="margin-bottom: 20px" |
| | | /> |
| | | </div> |
| | | <div class="head-container"> |
| | | <el-tree |
| | | :data="deptOptions" |
| | | :props="defaultProps" |
| | | :expand-on-click-node="false" |
| | | :filter-node-method="filterNode" |
| | | ref="tree" |
| | | node-key="id" |
| | | default-expand-all |
| | | highlight-current |
| | | @node-click="handleNodeClick" |
| | | /> |
| | | </div> |
| | | </el-col> --> |
| | | <!--ç¨æ·æ°æ®--> |
| | | <el-col :span="24" :xs="24"> |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="å§å" prop="userName"> |
| | | <el-input |
| | | v-model="queryParams.userName" |
| | | placeholder="请è¾å
¥å§å" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="身份è¯å·ç " prop="IDnumber"> |
| | | <el-input |
| | | v-model="queryParams.IDnumber" |
| | | placeholder="请è¾å
¥èº«ä»½è¯å·ç " |
| | | clearable |
| | | style="width: 250px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="èç³»æ¹å¼" prop="phonenumber"> |
| | | <el-input |
| | | v-model="queryParams.phonenumber" |
| | | placeholder="请è¾å
¥èç³»æ¹å¼" |
| | | clearable |
| | | style="width: 280px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-row> |
| | | <el-form-item label="æ£è
æ ç¾" prop="status"> |
| | | <el-cascader |
| | | v-model="queryParams.status" |
| | | :options="optionss" |
| | | :props="propss" |
| | | clearable |
| | | ></el-cascader> |
| | | </el-form-item> |
| | | </el-row> |
| | | |
| | | <!-- <el-form-item label="å建æ¶é´"> |
| | | <el-date-picker |
| | | v-model="dateRange" |
| | | style="width: 240px" |
| | | value-format="yyyy-MM-dd" |
| | | type="daterange" |
| | | range-separator="-" |
| | | start-placeholder="å¼å§æ¥æ" |
| | | end-placeholder="ç»ææ¥æ" |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="medium" @click="handleQuery">æç´¢</el-button> |
| | | <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">éç½®</el-button> |
| | | </el-form-item> --> |
| | | </el-form> |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="handleAdd" |
| | | v-hasPermi="['system:user:add']" |
| | | >æ°å¢</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="success" |
| | | plain |
| | | icon="el-icon-edit" |
| | | size="medium" |
| | | :disabled="single" |
| | | @click="handleUpdate" |
| | | v-hasPermi="['system:user:edit']" |
| | | >ä¿®æ¹</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="medium" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['system:user:remove']" |
| | | >å é¤</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="19"> |
| | | <div class="documentf"> |
| | | <div class="document"> |
| | | <el-button |
| | | type="info" |
| | | plain |
| | | icon="el-icon-upload2" |
| | | size="medium" |
| | | @click="handleImport" |
| | | v-hasPermi="['system:user:import']" |
| | | >导å
¥</el-button |
| | | > |
| | | </div> |
| | | <div class="document"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="medium" |
| | | @click="handleExport" |
| | | v-hasPermi="['system:user:export']" |
| | | >导åº</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </el-col> |
| | | <!-- <el-col :span="1.5"> </el-col> --> |
| | | </el-row> |
| | | <!-- <right-toolbar |
| | | :showSearch.sync="showSearch" |
| | | @queryTable="getList" |
| | | :columns="columns" |
| | | ></right-toolbar> --> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="userList" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | | <el-table-column |
| | | label="åºå·" |
| | | align="center" |
| | | key="userId" |
| | | prop="userId" |
| | | /> |
| | | <el-table-column |
| | | label="å§å" |
| | | align="center" |
| | | key="userName" |
| | | prop="userName" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="æ§å«" |
| | | align="center" |
| | | key="nickName" |
| | | prop="nickName" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="æ£è
æ ç¾" |
| | | align="center" |
| | | key="deptName" |
| | | prop="dept.deptName" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="è¯ä»¶ç±»å" |
| | | align="center" |
| | | key="phonenumber" |
| | | prop="phonenumber" |
| | | width="120" |
| | | /><el-table-column |
| | | label="è¯ä»¶å·ç " |
| | | align="center" |
| | | key="phonenumber" |
| | | prop="phonenumber" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="å¹´é¾" |
| | | align="center" |
| | | key="phonenumber" |
| | | prop="phonenumber" |
| | | v-if="columns[4].visible" |
| | | width="120" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="èç³»æ¹å¼" |
| | | align="center" |
| | | key="phonenumber" |
| | | prop="phonenumber" |
| | | v-if="columns[4].visible" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="å»ºæ¡£æ¥æ" |
| | | align="center" |
| | | prop="createTime" |
| | | v-if="columns[6].visible" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.createTime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æ´æ°æ¥æ" |
| | | align="center" |
| | | prop="createTime" |
| | | v-if="columns[6].visible" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.createTime) }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æä½" |
| | | align="center" |
| | | width="160" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope" v-if="scope.row.userId !== 1"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="$router.push('/patient/patient/profile/')" |
| | | v-hasPermi="['system:user:edit']" |
| | | >æ¥ç</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-col> |
| | | </el-row> |
| | | |
| | | <!-- æ·»å æä¿®æ¹ç¨æ·é
ç½®å¯¹è¯æ¡ --> |
| | | <el-dialog :title="title" :visible.sync="open" width="900px" append-to-body> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="100px"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å§å" prop="nickName"> |
| | | <el-input |
| | | v-model="form.nickName" |
| | | placeholder="请è¾å
¥å§å" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ§å«" prop="deptId"> |
| | | <el-select v-model="form.sex" placeholder="è¯·éæ©æ§å«"> |
| | | <el-option |
| | | v-for="dict in dict.type.sys_user_sex" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è¯ä»¶ç±»å" prop="phonenumber"> |
| | | <el-input |
| | | v-model="form.phonenumber" |
| | | placeholder="è¯·éæ©è¯ä»¶ç±»å" |
| | | maxlength="11" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è¯ä»¶å·" prop="email"> |
| | | <el-input |
| | | v-model="form.email" |
| | | placeholder="请è¾å
¥è¯ä»¶å·" |
| | | maxlength="50" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ¬äººææºå·" prop="userName"> |
| | | <el-input |
| | | v-model="form.userName" |
| | | placeholder="请è¾å
¥ææºå·" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="äº²å±ææºå·" prop="password"> |
| | | <el-input |
| | | v-model="form.password" |
| | | placeholder="请è¾å
¥äº²å±ææºå·" |
| | | type="password" |
| | | maxlength="20" |
| | | show-password |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ£è
æ ç¾"> |
| | | <!-- <el-select v-model="form.sex" placeholder="è¯·éæ©"> --> |
| | | <el-cascader |
| | | :options="optionss" |
| | | :props="propss" |
| | | clearable |
| | | ></el-cascader> |
| | | <!-- </el-select> --> |
| | | </el-form-item> |
| | | </el-col> |
| | | <!-- <el-col :span="12"> |
| | | <el-form-item label="ç¶æ"> |
| | | <el-radio-group v-model="form.status"> |
| | | <el-radio |
| | | v-for="dict in dict.type.sys_normal_disable" |
| | | :key="dict.value" |
| | | :label="dict.value" |
| | | >{{ dict.label }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> --> |
| | | </el-row> |
| | | <!-- <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å²ä½"> |
| | | <el-select |
| | | v-model="form.postIds" |
| | | multiple |
| | | placeholder="è¯·éæ©å²ä½" |
| | | > |
| | | <el-option |
| | | v-for="item in postOptions" |
| | | :key="item.postId" |
| | | :label="item.postName" |
| | | :value="item.postId" |
| | | :disabled="item.status == 1" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è§è²"> |
| | | <el-select |
| | | v-model="form.roleIds" |
| | | multiple |
| | | placeholder="è¯·éæ©è§è²" |
| | | > |
| | | <el-option |
| | | v-for="item in roleOptions" |
| | | :key="item.roleId" |
| | | :label="item.roleName" |
| | | :value="item.roleId" |
| | | :disabled="item.status == 1" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> --> |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="夿³¨"> |
| | | <el-input |
| | | v-model="form.remark" |
| | | type="textarea" |
| | | placeholder="请è¾å
¥å
容" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">ç¡® å®</el-button> |
| | | <el-button @click="cancel">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <!-- ç¨æ·å¯¼å
¥å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | :title="upload.title" |
| | | :visible.sync="upload.open" |
| | | width="70%" |
| | | append-to-body |
| | | > |
| | | <el-steps :active="dractive" simple> |
| | | <el-step title="ä¸ä¼ 导å
¥æä»¶" icon="el-icon-upload"></el-step> |
| | | <el-step title="导å
¥æ£æ¥" icon="el-icon-picture"></el-step> |
| | | <el-step title="导å
¥ç»æ" icon="el-icon-picture"></el-step> |
| | | </el-steps> |
| | | <!-- ä¸ä¼ 导å
¥æä»¶ --> |
| | | <div class="download" v-if="dractive == 1"> |
| | | <el-upload |
| | | class="upload-demo" |
| | | ref="upload" |
| | | :limit="1" |
| | | accept=".xlsx, .xls" |
| | | :headers="upload.headers" |
| | | :action="upload.url + '?updateSupport=' + upload.updateSupport" |
| | | :disabled="upload.isUploading" |
| | | :on-progress="handleFileUploadProgress" |
| | | :on-success="handleFileSuccess" |
| | | :auto-upload="false" |
| | | drag |
| | | > |
| | | <i class="el-icon-upload"></i> |
| | | <div class="el-upload__text">å°æä»¶æå°æ¤å¤ï¼æ<em>ç¹å»ä¸ä¼ </em></div> |
| | | <div class="el-upload__tip text-center" slot="tip"> |
| | | <div class="el-upload__tip" slot="tip"> |
| | | <el-checkbox v-model="upload.updateSupport" /> |
| | | æ¯å¦æ´æ°å·²ç»åå¨çç¨æ·æ°æ® |
| | | </div> |
| | | <span>ä»
å
许导å
¥xlsãxlsxæ ¼å¼æä»¶ã</span> |
| | | <el-link |
| | | type="primary" |
| | | :underline="false" |
| | | style="font-size: 24px; vertical-align: baseline" |
| | | @click="importTemplate" |
| | | >ä¸è½½æ¨¡æ¿</el-link |
| | | > |
| | | </div> |
| | | </el-upload> |
| | | </div> |
| | | <!-- 导å
¥æ£æ¥ --> |
| | | <div class="uploading" v-else-if="dractive == 2"> |
| | | <el-table :data="uploadingData" style="width: 100%"> |
| | | <el-table-column prop="serial" label="åºå·"> </el-table-column> |
| | | <el-table-column prop="name" label="å§å"> </el-table-column> |
| | | <el-table-column prop="sex" label="æ§å«"> </el-table-column> |
| | | <el-table-column prop="certificate" label="è¯ä»¶ç±»å"> |
| | | </el-table-column> |
| | | <el-table-column prop="certificatenum" label="è¯ä»¶å·ç "> |
| | | </el-table-column> |
| | | <el-table-column prop="goday" label="åºçæ¥æ"> </el-table-column> |
| | | <el-table-column prop="menum" label="æ¬äººèç³»æ¹å¼"> </el-table-column> |
| | | <el-table-column prop="younum" label="亲å±èç³»æ¹å¼"> |
| | | </el-table-column> |
| | | <el-table-column prop="tag" label="æ£è
æ ç¾"> </el-table-column> |
| | | <el-table-column prop="erry" label="é误åå "> </el-table-column> |
| | | </el-table> |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="geterryList" |
| | | /> |
| | | </div> |
| | | <!-- 宿 --> |
| | | <div class="drexamine" v-else-if="dractive == 3"> |
| | | <img |
| | | src="https://fuss10.elemecdn.com/e/5d/4a731a90594a4af544c0c25941171jpeg.jpeg" |
| | | /> |
| | | <p>导å
¥æ£è
æåï¼</p> |
| | | <p>æ¬æ¬¡å
±è®¡å¯¼å
¥{{ ImportQuantity }}使£è
</p> |
| | | </div> |
| | | |
| | | <div slot="footer" class="dialog-footer" v-if="dractive == 3"> |
| | | <!-- <el-button type="primary" @click="submitFileForm">ä¸ä¸æ¥</el-button> --> |
| | | <el-button @click="submitclose">宿</el-button> |
| | | </div> |
| | | <div slot="footer" v-else> |
| | | <el-button type="primary" @click="submitFileForm">ä¸ä¸æ¥</el-button> |
| | | <el-button @click="submitclose">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | listUser, |
| | | getUser, |
| | | delUser, |
| | | addUser, |
| | | updateUser, |
| | | resetUserPwd, |
| | | changeUserStatus, |
| | | deptTreeSelect, |
| | | } from "@/api/system/user"; |
| | | import { listpatient } from "@/api/patient/homepage"; |
| | | import { getToken } from "@/utils/auth"; |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | |
| | | export default { |
| | | name: "User", |
| | | dicts: ["sys_normal_disable", "sys_user_sex"], |
| | | components: { Treeselect }, |
| | | data() { |
| | | return { |
| | | // é®ç½©å± |
| | | loading: true, |
| | | // é䏿°ç» |
| | | ids: [], |
| | | // éå个ç¦ç¨ |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | // ç¨æ·è¡¨æ ¼æ°æ® |
| | | userList: null, |
| | | // å¼¹åºå±æ é¢ |
| | | title: "", |
| | | // é¨é¨æ é项 |
| | | deptOptions: undefined, |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå± |
| | | open: false, |
| | | // é¨é¨åç§° |
| | | deptName: undefined, |
| | | // é»è®¤å¯ç |
| | | initPassword: undefined, |
| | | // æ¥æèå´ |
| | | dateRange: [], |
| | | // å²ä½é项 |
| | | postOptions: [], |
| | | // è§è²é项 |
| | | roleOptions: [], |
| | | // 表ååæ° |
| | | form: {}, |
| | | //导å
¥è¿åº¦ |
| | | dractive: 1, |
| | | // 导å
¥å±ç¤ºè¡¨å |
| | | uploadingData: {}, |
| | | total: 0, // æ»æ¡æ° |
| | | ImportQuantity: 999, //导å
¥æ£è
æ°é |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | jobName: undefined, |
| | | jobGroup: undefined, |
| | | status: undefined, |
| | | }, |
| | | propss: { multiple: true }, |
| | | optionss: [ |
| | | { |
| | | value: 1, |
| | | label: "ä¸å", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "西å", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "仨仨仨", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "å
é£é£é£", |
| | | }, |
| | | ], |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "label", |
| | | }, |
| | | // ç¨æ·å¯¼å
¥åæ° |
| | | upload: { |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå±ï¼ç¨æ·å¯¼å
¥ï¼ |
| | | open: false, |
| | | // å¼¹åºå±æ é¢ï¼ç¨æ·å¯¼å
¥ï¼ |
| | | title: "", |
| | | // æ¯å¦ç¦ç¨ä¸ä¼ |
| | | isUploading: false, |
| | | // æ¯å¦æ´æ°å·²ç»åå¨çç¨æ·æ°æ® |
| | | updateSupport: 0, |
| | | // 设置ä¸ä¼ ç请æ±å¤´é¨ |
| | | headers: { Authorization: "Bearer " + getToken() }, |
| | | // ä¸ä¼ çå°å |
| | | url: process.env.VUE_APP_BASE_API + "/system/user/importData", |
| | | }, |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | name: "ç大", |
| | | pageSize: 10, |
| | | userName: undefined, |
| | | phonenumber: undefined, |
| | | status: undefined, |
| | | deptId: undefined, |
| | | IDnumber: undefined, |
| | | }, |
| | | // åä¿¡æ¯ |
| | | columns: [ |
| | | { key: 0, label: `ç¨æ·ç¼å·`, visible: true }, |
| | | { key: 1, label: `ç¨æ·åç§°`, visible: true }, |
| | | { key: 2, label: `ç¨æ·æµç§°`, visible: true }, |
| | | { key: 3, label: `é¨é¨`, visible: true }, |
| | | { key: 4, label: `ææºå·ç `, visible: true }, |
| | | { key: 5, label: `ç¶æ`, visible: true }, |
| | | { key: 6, label: `å建æ¶é´`, visible: true }, |
| | | ], |
| | | // è¡¨åæ ¡éª |
| | | rules: { |
| | | userName: [ |
| | | { required: true, message: "ç¨æ·åç§°ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | { |
| | | min: 2, |
| | | max: 20, |
| | | message: "ç¨æ·åç§°é¿åº¦å¿
é¡»ä»äº 2 å 20 ä¹é´", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | nickName: [ |
| | | { required: true, message: "ç¨æ·æµç§°ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | ], |
| | | password: [ |
| | | { required: true, message: "ç¨æ·å¯ç ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | { |
| | | min: 5, |
| | | max: 20, |
| | | message: "ç¨æ·å¯ç é¿åº¦å¿
é¡»ä»äº 5 å 20 ä¹é´", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | email: [ |
| | | { |
| | | type: "email", |
| | | message: "请è¾å
¥æ£ç¡®çé®ç®±å°å", |
| | | trigger: ["blur", "change"], |
| | | }, |
| | | ], |
| | | phonenumber: [ |
| | | { |
| | | pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, |
| | | message: "请è¾å
¥æ£ç¡®çææºå·ç ", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | IDnumber: [ |
| | | { |
| | | pattern: |
| | | /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/, |
| | | message: "请è¾å
¥æ£ç¡®ç身份è¯å·ç ", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | watch: { |
| | | // æ ¹æ®åç§°çéé¨é¨æ |
| | | deptName(val) { |
| | | this.$refs.tree.filter(val); |
| | | }, |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | this.getDeptTree(); |
| | | this.getConfigKey("sys.user.initPassword").then((response) => { |
| | | this.initPassword = response.msg; |
| | | }); |
| | | }, |
| | | methods: { |
| | | /** æ¥è¯¢æ£è
å表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listUser(this.queryParams).then((response) => { |
| | | console.log(response); |
| | | this.userList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | // æ¥è¯¢å¯¼å
¥å±ç¤ºå表 |
| | | geterryList() { |
| | | this.loading = true; |
| | | listJob(this.queryParams).then((response) => { |
| | | this.jobList = 1; |
| | | this.total = 1; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | /** æ¥è¯¢é¨é¨ä¸ææ ç»æ */ |
| | | getDeptTree() { |
| | | deptTreeSelect().then((response) => { |
| | | this.deptOptions = response.data; |
| | | }); |
| | | }, |
| | | // çéèç¹ |
| | | filterNode(value, data) { |
| | | if (!value) return true; |
| | | return data.label.indexOf(value) !== -1; |
| | | }, |
| | | // èç¹åå»äºä»¶ |
| | | handleNodeClick(data) { |
| | | this.queryParams.deptId = data.id; |
| | | this.handleQuery(); |
| | | }, |
| | | // ç¨æ·ç¶æä¿®æ¹ |
| | | handleStatusChange(row) { |
| | | let text = row.status === "0" ? "å¯ç¨" : "åç¨"; |
| | | this.$modal |
| | | .confirm('确认è¦"' + text + '""' + row.userName + '"ç¨æ·åï¼') |
| | | .then(function () { |
| | | return changeUserStatus(row.userId, row.status); |
| | | }) |
| | | .then(() => { |
| | | this.$modal.msgSuccess(text + "æå"); |
| | | }) |
| | | .catch(function () { |
| | | row.status = row.status === "0" ? "1" : "0"; |
| | | }); |
| | | }, |
| | | // åæ¶æé® |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | // 表åéç½® |
| | | reset() { |
| | | this.form = { |
| | | userId: undefined, |
| | | deptId: undefined, |
| | | userName: undefined, |
| | | nickName: undefined, |
| | | password: undefined, |
| | | phonenumber: undefined, |
| | | email: undefined, |
| | | sex: undefined, |
| | | status: "0", |
| | | remark: undefined, |
| | | postIds: [], |
| | | roleIds: [], |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.resetForm("queryForm"); |
| | | this.queryParams.deptId = undefined; |
| | | this.$refs.tree.setCurrentKey(null); |
| | | this.handleQuery(); |
| | | }, |
| | | // å¤éæ¡é䏿°æ® |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map((item) => item.userId); |
| | | this.single = selection.length != 1; |
| | | this.multiple = !selection.length; |
| | | }, |
| | | // æ´å¤æä½è§¦å |
| | | handleCommand(command, row) { |
| | | switch (command) { |
| | | case "handleResetPwd": |
| | | this.handleResetPwd(row); |
| | | break; |
| | | case "handleAuthRole": |
| | | this.handleAuthRole(row); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | }, |
| | | /** æ°å¢æé®æä½ */ |
| | | handleAdd() { |
| | | this.reset(); |
| | | getUser().then((response) => { |
| | | this.postOptions = response.posts; |
| | | this.roleOptions = response.roles; |
| | | this.open = true; |
| | | this.title = "æ°å¢æ£è
"; |
| | | this.form.password = this.initPassword; |
| | | }); |
| | | }, |
| | | /** ä¿®æ¹æé®æä½ */ |
| | | handleUpdate(row) { |
| | | this.reset(); |
| | | const userId = row.userId || this.ids; |
| | | getUser(userId).then((response) => { |
| | | this.form = response.data; |
| | | this.postOptions = response.posts; |
| | | this.roleOptions = response.roles; |
| | | this.$set(this.form, "postIds", response.postIds); |
| | | this.$set(this.form, "roleIds", response.roleIds); |
| | | this.open = true; |
| | | this.title = "ä¿®æ¹ç¨æ·"; |
| | | this.form.password = ""; |
| | | }); |
| | | }, |
| | | /** éç½®å¯ç æé®æä½ */ |
| | | handleResetPwd(row) { |
| | | this.$prompt('请è¾å
¥"' + row.userName + '"çæ°å¯ç ', "æç¤º", { |
| | | confirmButtonText: "ç¡®å®", |
| | | cancelButtonText: "åæ¶", |
| | | closeOnClickModal: false, |
| | | inputPattern: /^.{5,20}$/, |
| | | inputErrorMessage: "ç¨æ·å¯ç é¿åº¦å¿
é¡»ä»äº 5 å 20 ä¹é´", |
| | | }) |
| | | .then(({ value }) => { |
| | | resetUserPwd(row.userId, value).then((response) => { |
| | | this.$modal.msgSuccess("ä¿®æ¹æåï¼æ°å¯ç æ¯ï¼" + value); |
| | | }); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | /** åé
è§è²æä½ */ |
| | | handleAuthRole: function (row) { |
| | | const userId = row.userId; |
| | | this.$router.push("/system/user-auth/role/" + userId); |
| | | }, |
| | | /** æäº¤æé® */ |
| | | submitForm: function () { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | if (this.form.userId != undefined) { |
| | | updateUser(this.form).then((response) => { |
| | | this.$modal.msgSuccess("ä¿®æ¹æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } else { |
| | | addUser(this.form).then((response) => { |
| | | this.$modal.msgSuccess("æ°å¢æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | /** å é¤æé®æä½ */ |
| | | handleDelete(row) { |
| | | const userIds = row.userId || this.ids; |
| | | this.$modal |
| | | .confirm('æ¯å¦ç¡®è®¤å é¤ç¨æ·ç¼å·ä¸º"' + userIds + '"çæ°æ®é¡¹ï¼') |
| | | .then(function () { |
| | | return delUser(userIds); |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | /** å¯¼åºæé®æä½ */ |
| | | handleExport() { |
| | | this.download( |
| | | "smartor/patarchive/export", |
| | | { |
| | | ...this.queryParams, |
| | | }, |
| | | `user_${new Date().getTime()}.xlsx` |
| | | ); |
| | | }, |
| | | /** 导å
¥æé®æä½ */ |
| | | handleImport() { |
| | | this.upload.title = "ç¨æ·å¯¼å
¥"; |
| | | this.upload.open = true; |
| | | }, |
| | | /** ä¸è½½æ¨¡æ¿æä½ */ |
| | | importTemplate() { |
| | | this.download( |
| | | "system/user/importTemplate", |
| | | {}, |
| | | `user_template_${new Date().getTime()}.xlsx` |
| | | ); |
| | | }, |
| | | // æä»¶ä¸ä¼ ä¸å¤ç |
| | | handleFileUploadProgress(event, file, fileList) { |
| | | this.upload.isUploading = true; |
| | | }, |
| | | // æä»¶ä¸ä¼ æåå¤ç |
| | | handleFileSuccess(response, file, fileList) { |
| | | this.upload.open = false; |
| | | this.upload.isUploading = false; |
| | | this.$refs.upload.clearFiles(); |
| | | this.$alert( |
| | | "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + |
| | | response.msg + |
| | | "</div>", |
| | | "导å
¥ç»æ", |
| | | { dangerouslyUseHTMLString: true } |
| | | ); |
| | | this.getList(); |
| | | }, |
| | | // æäº¤ä¸ä¼ æä»¶ |
| | | submitFileForm() { |
| | | // ä¸ä¼ |
| | | if (this.dractive == 1) { |
| | | this.$refs.upload.submit(); |
| | | this.dractive++; |
| | | } else { |
| | | this.dractive++; |
| | | } |
| | | }, |
| | | submitclose() { |
| | | this.upload.open = false; |
| | | this.dractive = 1; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .el-button--primary.is-plain { |
| | | color: #ffffff; |
| | | background: #409eff; |
| | | border-color: #4fabe9; |
| | | } |
| | | .document { |
| | | width: 100px; |
| | | height: 50px; |
| | | } |
| | | .documentf { |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | } |
| | | .download { |
| | | text-align: center; |
| | | .el-upload__tip { |
| | | font-size: 23px; |
| | | } |
| | | .el-upload__text { |
| | | font-size: 23px; |
| | | } |
| | | } |
| | | .uploading { |
| | | margin-top: 20px; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | background: #ffffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | } |
| | | .drexamine { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | padding: 30px; |
| | | background: #daeaf5; |
| | | img { |
| | | width: 100px; |
| | | height: 100px; |
| | | } |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="4" :xs="24"> |
| | | <el-card class="box-card"> |
| | | <!-- <div slot="header" class="clearfix"> |
| | | <span>个人信æ¯</span> |
| | | </div> --> |
| | | <div class="personage"> |
| | | <div class="text-center"> |
| | | <img v-imgError="require('@/assets/common/head.jpg')" src="" /> |
| | | </div> |
| | | <div class="information"> |
| | | <div class="info-xx"> |
| | | å´é¾ |
| | | <div class="xinz-inf">+æ°å¢æ ç¾</div> |
| | | </div> |
| | | <div class="info-xx">ç·<span>66å²</span></div> |
| | | <div class="info-xx">13803963330</div> |
| | | </div> |
| | | </div> |
| | | </el-card> |
| | | </el-col> |
| | | <el-col :span="18" :xs="24"> |
| | | <el-tabs |
| | | type="border-card" |
| | | v-model="activeName" |
| | | @tab-click="handleClick" |
| | | > |
| | | <el-tab-pane name="health"> |
| | | <span class="mulsz" slot="label" |
| | | ><i class="el-icon-date"></i> å¥åº·æ¡£æ¡</span |
| | | > |
| | | åºæ¬ä¿¡æ¯ |
| | | </el-tab-pane> |
| | | <el-tab-pane name="medical"> |
| | | <span class="mulsz" slot="label" |
| | | ><i class="el-icon-s-management"></i> å»çæ¡£æ¡</span |
| | | > |
| | | <el-tabs v-model="sonactiveName" @tab-click="handleClick"> |
| | | <el-tab-pane name="outpatient" |
| | | ><span class="mulsz" slot="label" |
| | | >é¨è¯({{ mznumber }})</span |
| | | ></el-tab-pane |
| | | > |
| | | <el-tab-pane name="inhospital" |
| | | ><span class="mulsz" slot="label" |
| | | >ä½é¢({{ zynumber }}) |
| | | </span></el-tab-pane |
| | | > |
| | | <el-tab-pane name="checkout" |
| | | ><span class="mulsz" slot="label" |
| | | >æ£éª({{ jynumber }}) |
| | | </span></el-tab-pane |
| | | > |
| | | <el-tab-pane name="examine" |
| | | ><span class="mulsz" slot="label" |
| | | >æ£æ¥({{ jcnumber }}) |
| | | </span></el-tab-pane |
| | | > |
| | | <el-tab-pane name="physical" |
| | | ><span class="mulsz" slot="label"> |
| | | 使£({{ tjnumber }})</span |
| | | ></el-tab-pane |
| | | > |
| | | <el-tab-pane name="pharmacy" |
| | | ><span class="mulsz" slot="label" |
| | | >ç¨è¯({{ yynumber }}) |
| | | </span></el-tab-pane |
| | | > |
| | | </el-tabs> |
| | | </el-tab-pane> |
| | | <el-tab-pane name="monitor"> |
| | | <span class="mulsz" slot="label" |
| | | ><i class="el-icon-s-data"></i> å¥åº·çæµ</span |
| | | > |
| | | |
| | | <el-tabs v-model="sontwoactiveName" @tab-click="handleClick"> |
| | | <el-tab-pane name="blood" |
| | | ><span class="mulsz" slot="label" |
| | | ><i class="el-icon-s-operation"></i> è¡å</span |
| | | ></el-tab-pane |
| | | > |
| | | <el-tab-pane name="glucose" |
| | | ><span class="mulsz" slot="label" |
| | | ><i class="el-icon-odometer"></i>è¡ç³ |
| | | </span></el-tab-pane |
| | | > |
| | | <el-tab-pane name="weight" |
| | | ><span class="mulsz" slot="label" |
| | | ><i class="el-icon-s-data"></i>ä½é |
| | | </span></el-tab-pane |
| | | > |
| | | </el-tabs></el-tab-pane |
| | | > |
| | | <el-tab-pane name="serve"> |
| | | <span class="mulsz" slot="label" |
| | | ><i class="el-icon-s-custom"></i> æå¡è®°å½</span |
| | | > |
| | | |
| | | 宿¶ä»»å¡è¡¥å¿</el-tab-pane |
| | | > |
| | | </el-tabs> |
| | | </el-col> |
| | | </el-row> |
| | | <!-- å¥åº·æ¡£æ¡æ¨¡å --> |
| | | <div class="information-content" v-if="activeName == 'health'"> |
| | | <div class="top-message"> |
| | | <div class="headline">åºç¡ä¿¡æ¯</div> |
| | | <div class="detailed"> |
| | | <div class="one-column"> |
| | | <div>æ£è
å§åï¼<span class="spanvalue">ç大ç¾</span></div> |
| | | <div>æ§å«ï¼<span class="spanvalue">ç·</span></div> |
| | | |
| | | <div>è¯ä»¶ç±»åï¼<span class="spanvalue">身份è¯</span></div> |
| | | </div> |
| | | <div class="one-column"> |
| | | <div>åºçæ¥æï¼<span class="spanvalue">1999-01-02</span></div> |
| | | |
| | | <div>å¹´é¾ï¼<span class="spanvalue">121</span></div> |
| | | |
| | | <div class=""> |
| | | è¯ä»¶å·ç ï¼<span class="spanvalue">312223222322232223</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="bottom-message"> |
| | | <div class="headline">å·ç ç»´æ¤</div> |
| | | <div class="Table-screen"> |
| | | <el-table :data="tableData" style="width: 100%"> |
| | | <el-table-column prop="name" label="å§å" width="180"> |
| | | </el-table-column> |
| | | <el-table-column prop="phonenumber" label="èç³»æ¹å¼" width="180"> |
| | | </el-table-column> |
| | | <el-table-column prop="concern" label="å
³ç³»"> </el-table-column> |
| | | <el-table-column prop="source" label="èç³»äººæ¥æº"> |
| | | </el-table-column> |
| | | <el-table-column prop="default" label="é»è®¤èç³»æ¹å¼"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label-class-name="columcz" |
| | | fixed="right" |
| | | label="æä½" |
| | | width="300" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button type="success" size="small" |
| | | >设为é»è®¤èç³»æ¹å¼</el-button |
| | | > |
| | | <el-button type="warning" size="small">ç¼è¾</el-button> |
| | | <el-button type="danger" size="small">å é¤</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <!-- å»çæ¡£æ¡ --> |
| | | <div class="medical-record" v-else-if="activeName == 'medical'"> |
| | | <!-- é¨è¯ --> |
| | | <div v-if="sonactiveName == 'outpatient'"> |
| | | <el-table :data="serviceData" style="width: 100%"> |
| | | <el-table-column prop="daya" label="å°±è¯æ¥æ" width="180"> |
| | | </el-table-column> |
| | | <el-table-column prop="hospitalname" label="å»é¢åç§°" width="180"> |
| | | </el-table-column> |
| | | <el-table-column prop="result" label="è¯æç»æ"> </el-table-column> |
| | | <el-table-column prop="administrative" label="å°±è¯ç§å®¤"> |
| | | </el-table-column> |
| | | <el-table-column prop="doctor" label="å»ç"> </el-table-column> |
| | | <el-table-column label-class-name="columcz" label="æä½" width="300"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small">详æ
</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" |
| | | /> |
| | | </div> |
| | | <!-- ä½é¢ --> |
| | | <div v-if="sonactiveName == 'inhospital'"> |
| | | <el-table :data="serviceData" style="width: 100%"> |
| | | <el-table-column prop="godaya" label="å
¥é¢æ¥æ"> </el-table-column> |
| | | <el-table-column prop="hospitalname" label="å»é¢åç§°"> |
| | | </el-table-column> |
| | | <el-table-column prop="result" label="å
¥é¢ç§å«"> </el-table-column> |
| | | <el-table-column prop="administrative" label="ç
åº"> |
| | | </el-table-column> |
| | | <el-table-column prop="bed" label="åºä½å·"> </el-table-column> |
| | | <el-table-column prop="doctor" label="å
¥é¢è¯æ"> </el-table-column> |
| | | <el-table-column prop="today" label="åºé¢æ¶é´"> </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <!-- æ£éª --> |
| | | <div v-if="sonactiveName == 'checkout'"> |
| | | <el-table :data="serviceData" style="width: 100%"> |
| | | <el-table-column prop="godaya" label="æ£éªåå·"> </el-table-column> |
| | | <el-table-column prop="hospitalname" label="æ¥åæ¥æ"> |
| | | </el-table-column> |
| | | <el-table-column prop="result" label="æ£éªé¡¹ç®"> </el-table-column> |
| | | <el-table-column prop="administrative" label="å»é¢åç§°"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <!-- æ£æ¥ --> |
| | | <div v-if="sonactiveName == 'examine'"> |
| | | <el-table :data="serviceData" style="width: 100%"> |
| | | <el-table-column prop="godaya" label="æ¥åå"> </el-table-column> |
| | | <el-table-column prop="hospitalname" label="æ¥åæ¶é´"> |
| | | </el-table-column> |
| | | <el-table-column prop="result" label="æ£æ¥é¡¹ç®"> </el-table-column> |
| | | <el-table-column prop="administrative" label="å»é¢åç§°"> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | <!-- 使£ --> |
| | | <div v-if="sonactiveName == 'physical'"> |
| | | <el-table :data="serviceData" style="width: 100%"> |
| | | <el-table-column prop="daya" label="å°±è¯æ¥æ"> </el-table-column> |
| | | <el-table-column prop="hospitalname" label="å»é¢åç§°"> |
| | | </el-table-column> |
| | | <el-table-column prop="result" label="è¯æç»æ"> </el-table-column> |
| | | <el-table-column prop="administrative" label="å°±è¯ç§å®¤"> |
| | | </el-table-column> |
| | | <el-table-column prop="doctor" label="å»ç"> </el-table-column> |
| | | <!-- <el-table-column |
| | | label-class-name="columcz" |
| | | fixed="right" |
| | | label="æä½" |
| | | width="300" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button type="text" size="small">详æ
</el-button> |
| | | </template> |
| | | </el-table-column> --> |
| | | </el-table> |
| | | </div> |
| | | <!-- ç¨è¯ --> |
| | | <div v-if="sonactiveName == 'pharmacy'"> |
| | | <el-table :data="serviceData" style="width: 100%"> |
| | | <el-table-column prop="daya" label="å°±è¯æ¥æ"> </el-table-column> |
| | | <el-table-column prop="hospitalname" label="å»é¢åç§°"> |
| | | </el-table-column> |
| | | <el-table-column prop="result" label="è¯æç»æ"> </el-table-column> |
| | | <el-table-column prop="administrative" label="å°±è¯ç§å®¤"> |
| | | </el-table-column> |
| | | <el-table-column prop="doctor" label="å»ç"> </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- æå¡è®°å½ --> |
| | | <div class="medical-record" v-else-if="activeName == 'serve'">sdaad</div> |
| | | <!-- å¥åº·çæµ --> |
| | | <div class="medical-record" v-show="activeName == 'monitor'"> |
| | | <!-- è¡å徿 --> |
| | | <div v-show="sontwoactiveName == 'blood'"> |
| | | <div |
| | | id="xyeCharts" |
| | | class="sontwoactiveName" |
| | | style="width: 1300px; height: 800px" |
| | | ></div> |
| | | </div> |
| | | <!-- è¡ç³ --> |
| | | <div v-show="sontwoactiveName == 'glucose'"> |
| | | <div |
| | | id="xteCharts" |
| | | class="sontwoactiveName" |
| | | style="width: 1300px; height: 800px" |
| | | ></div> |
| | | </div> |
| | | <!-- ä½é --> |
| | | <div v-show="sontwoactiveName == 'weight'"> |
| | | <div |
| | | id="tzeCharts" |
| | | class="sontwoactiveName" |
| | | style="width: 1300px; height: 800px" |
| | | ></div> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- <div id="xyeCharts" style="width: 500px; height: 500px"></div> --> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import userAvatar from "./userAvatar"; |
| | | import userInfo from "./userInfo"; |
| | | import resetPwd from "./resetPwd"; |
| | | import * as echarts from "echarts"; |
| | | |
| | | import { getUserProfile } from "@/api/system/user"; |
| | | import { listJob } from "@/api/monitor/job"; //è·åå表æ¥å£å¾
å® |
| | | |
| | | export default { |
| | | name: "Profile", |
| | | components: { userAvatar, userInfo, resetPwd }, |
| | | data() { |
| | | return { |
| | | user: {}, |
| | | roleGroup: {}, |
| | | postGroup: {}, |
| | | mznumber: 14, |
| | | zynumber: 34, |
| | | jynumber: 32, |
| | | jcnumber: 12, |
| | | tjnumber: 12, |
| | | yynumber: 12, |
| | | total: 0, // æ»æ¡æ° |
| | | activeTab: "userinfo", |
| | | activeName: "health", //ä¸ç±»å¯¼èª |
| | | sonactiveName: "outpatient", //å¥åº·çæµå¯¼èª |
| | | sontwoactiveName: "blood", //å»çæ¡£æ¡å¯¼èª |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | jobName: undefined, |
| | | jobGroup: undefined, |
| | | status: undefined, |
| | | }, |
| | | echartdom: {}, |
| | | xtechartdom: {}, |
| | | tzechartdom: {}, |
| | | tableData: [ |
| | | { |
| | | date: "2016-05-02", |
| | | name: "çå°è", |
| | | address: "䏿µ·å¸æ®éåºéæ²æ±è·¯ 1518 å¼", |
| | | }, |
| | | { |
| | | date: "2016-05-04", |
| | | name: "çå°è", |
| | | address: "䏿µ·å¸æ®éåºéæ²æ±è·¯ 1517 å¼", |
| | | }, |
| | | { |
| | | date: "2016-05-01", |
| | | name: "çå°è", |
| | | address: "䏿µ·å¸æ®éåºéæ²æ±è·¯ 1519 å¼", |
| | | }, |
| | | { |
| | | date: "2016-05-03", |
| | | name: "çå°è", |
| | | address: "䏿µ·å¸æ®éåºéæ²æ±è·¯ 1516 å¼", |
| | | }, |
| | | ], |
| | | serviceData: [ |
| | | { |
| | | daya: "2023-12-12", |
| | | hospitalname: "åå", |
| | | result: "é§å¸¦æä¼¤", |
| | | administrative: "骨ç§", |
| | | doctor: "å´å¤§é¾", |
| | | }, |
| | | ], |
| | | }; |
| | | }, |
| | | created() { |
| | | this.$nextTick(function () { |
| | | this.echartdom = document.getElementById("xyeCharts"); |
| | | this.xtechartdom = document.getElementById("xteCharts"); |
| | | this.tzechartdom = document.getElementById("tzeCharts"); |
| | | console.log(this.echartdom); |
| | | console.log(this.xtechartdom); |
| | | console.log(this.tzechartdom); |
| | | this.echartsInit(); |
| | | this.xtechartsInit(); |
| | | this.tzechartsInit(); |
| | | }); |
| | | this.getList(); |
| | | }, |
| | | methods() {}, |
| | | |
| | | methods: { |
| | | // æ¥è¯¢å表 |
| | | getList() { |
| | | this.loading = true; |
| | | listJob(this.queryParams).then((response) => { |
| | | this.jobList = 1; |
| | | this.total = 1; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | // getUser() { |
| | | // getUserProfile().then((response) => { |
| | | // this.user = response.data; |
| | | // this.roleGroup = response.roleGroup; |
| | | // this.postGroup = response.postGroup; |
| | | // }); |
| | | // }, |
| | | handleClick(tab, event) { |
| | | console.log(tab, event); |
| | | }, |
| | | |
| | | // è¡åå¾è¡¨é¨å |
| | | echartsInit() { |
| | | // åºäºåå¤å¥½çdomï¼åå§åechartså®ä¾ |
| | | console.log(echarts); |
| | | console.log(this.echartdom); |
| | | console.log(this.$refs.xyeCharts); |
| | | var myxyChart = echarts.init(this.echartdom); |
| | | console.log(myxyChart); |
| | | // var myxyChart = this.$echarts.init(document.getElementById("xyeCharts")); |
| | | // var myxyChart = this.$echarts.init(this.$refs.xyeCharts); |
| | | var option = { |
| | | title: { |
| | | text: "åå²è¡åè®°å½", |
| | | }, |
| | | tooltip: { |
| | | trigger: "axis", |
| | | }, |
| | | legend: {}, |
| | | toolbox: { |
| | | show: true, |
| | | feature: { |
| | | dataZoom: { |
| | | yAxisIndex: "none", |
| | | }, |
| | | dataView: { readOnly: false }, |
| | | magicType: { type: ["line", "bar"] }, |
| | | restore: {}, |
| | | saveAsImage: {}, |
| | | }, |
| | | }, |
| | | xAxis: { |
| | | type: "category", |
| | | boundaryGap: false, |
| | | data: ["䏿", "äºæ", "䏿", "åæ", "äºæ", "å
æ", "䏿"], |
| | | }, |
| | | yAxis: { |
| | | type: "value", |
| | | axisLabel: { |
| | | formatter: "{value}", |
| | | }, |
| | | }, |
| | | series: [ |
| | | { |
| | | name: "æ¶ç¼©å", |
| | | type: "line", |
| | | data: [100, 120, 130, 121, 132, 142, 119], |
| | | itemStyle: { |
| | | normal: { |
| | | color: "#ff7979", |
| | | }, |
| | | }, |
| | | markPoint: { |
| | | data: [{ type: "max", name: "èå¼ åé«å¼" }], |
| | | }, |
| | | markLine: { |
| | | data: [{ yAxis: 140, name: "æ£å¸¸èå¼ åé«å¼" }], |
| | | }, |
| | | }, |
| | | { |
| | | name: "èå¼ å", |
| | | type: "line", |
| | | data: [71, 79, 82, 85, 93, 82, 90], |
| | | itemStyle: { |
| | | normal: { |
| | | color: "#409eff", |
| | | }, |
| | | }, |
| | | markPoint: { |
| | | data: [{ name: "卿ä½", type: "min" }], |
| | | }, |
| | | markLine: { |
| | | data: [{ yAxis: 80, name: "æ£å¸¸èå¼ åé«å¼" }], |
| | | }, |
| | | }, |
| | | ], |
| | | }; |
| | | console.log("ss"); |
| | | // 使ç¨åæå®çé
ç½®é¡¹åæ°æ®æ¾ç¤ºå¾è¡¨ã |
| | | myxyChart.setOption(option); |
| | | }, |
| | | // è¡ç³å¾è¡¨ |
| | | xtechartsInit() { |
| | | // åºäºåå¤å¥½çdomï¼åå§åechartså®ä¾ |
| | | // console.log(echarts); |
| | | console.log(this.xtechartdom); |
| | | var myxyChart = echarts.init(this.xtechartdom); |
| | | console.log(myxyChart); |
| | | const data = [ |
| | | ["2000-06-05", 116], |
| | | ["2000-06-06", 129], |
| | | ["2000-06-07", 135], |
| | | ["2000-06-08", 86], |
| | | ["2000-06-09", 73], |
| | | ["2000-06-10", 85], |
| | | ["2000-06-11", 73], |
| | | ["2000-06-12", 68], |
| | | ["2000-06-13", 92], |
| | | ["2000-06-14", 130], |
| | | ["2000-06-15", 245], |
| | | ["2000-06-16", 139], |
| | | ["2000-06-17", 115], |
| | | ["2000-06-18", 111], |
| | | ["2000-06-19", 309], |
| | | ["2000-06-20", 206], |
| | | ["2000-06-21", 137], |
| | | ["2000-06-22", 128], |
| | | ["2000-06-23", 85], |
| | | ]; |
| | | const dateList = data.map(function (item) { |
| | | return item[0]; |
| | | }); |
| | | const valueList = data.map(function (item) { |
| | | return item[1]; |
| | | }); |
| | | var option = { |
| | | title: { |
| | | text: "åå²è¡ç³è®°å½", |
| | | }, |
| | | visualMap: [ |
| | | { |
| | | show: false, |
| | | type: "continuous", |
| | | seriesIndex: 0, |
| | | min: 0, |
| | | max: 400, |
| | | }, |
| | | ], |
| | | title: [ |
| | | { |
| | | left: "center", |
| | | text: "è¡ç³åå²çæµ", |
| | | }, |
| | | ], |
| | | tooltip: { |
| | | trigger: "axis", |
| | | }, |
| | | xAxis: [ |
| | | { |
| | | data: dateList, |
| | | }, |
| | | ], |
| | | yAxis: [{}], |
| | | series: [ |
| | | { |
| | | type: "line", |
| | | showSymbol: false, |
| | | data: valueList, |
| | | }, |
| | | ], |
| | | }; |
| | | console.log("ss"); |
| | | // 使ç¨åæå®çé
ç½®é¡¹åæ°æ®æ¾ç¤ºå¾è¡¨ã |
| | | myxyChart.setOption(option); |
| | | }, |
| | | // ä½éå¾è¡¨ |
| | | tzechartsInit() { |
| | | // åºäºåå¤å¥½çdomï¼åå§åechartså®ä¾ |
| | | console.log(echarts); |
| | | console.log(this.tzechartdom); |
| | | var myxyChart = echarts.init(this.tzechartdom); |
| | | console.log(myxyChart); |
| | | const data = [ |
| | | ["2000-06-05", 116], |
| | | ["2000-06-06", 99], |
| | | ["2000-06-07", 105], |
| | | ["2000-06-08", 126], |
| | | ["2000-06-09", 73], |
| | | ["2000-06-10", 85], |
| | | ["2000-06-11", 73], |
| | | ["2000-06-12", 68], |
| | | ["2000-06-13", 92], |
| | | ["2000-06-14", 130], |
| | | ["2000-06-15", 245], |
| | | ["2000-06-16", 119], |
| | | ["2000-06-17", 115], |
| | | ["2000-06-18", 201], |
| | | ["2000-06-19", 209], |
| | | ["2000-06-20", 106], |
| | | ["2000-06-21", 137], |
| | | ["2000-06-22", 128], |
| | | ["2000-06-23", 85], |
| | | ]; |
| | | const dateList = data.map(function (item) { |
| | | return item[0]; |
| | | }); |
| | | const valueList = data.map(function (item) { |
| | | return item[1]; |
| | | }); |
| | | var option = { |
| | | title: { |
| | | text: "åå²è¡ç³è®°å½", |
| | | }, |
| | | toolbox: { |
| | | show: true, |
| | | feature: { |
| | | dataZoom: { |
| | | yAxisIndex: "none", |
| | | }, |
| | | dataView: { readOnly: false }, |
| | | magicType: { type: ["line", "bar"] }, |
| | | restore: {}, |
| | | saveAsImage: {}, |
| | | }, |
| | | }, |
| | | visualMap: [ |
| | | { |
| | | show: false, |
| | | type: "continuous", |
| | | seriesIndex: 0, |
| | | min: 0, |
| | | max: 400, |
| | | }, |
| | | ], |
| | | title: [ |
| | | { |
| | | left: "center", |
| | | text: "è¡ç³åå²çæµ", |
| | | }, |
| | | ], |
| | | tooltip: { |
| | | trigger: "axis", |
| | | }, |
| | | xAxis: [ |
| | | { |
| | | data: dateList, |
| | | }, |
| | | ], |
| | | yAxis: [{}], |
| | | series: [ |
| | | { |
| | | type: "line", |
| | | showSymbol: false, |
| | | data: valueList, |
| | | lineStyle: { |
| | | width: 3, |
| | | type: "solid", |
| | | color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ |
| | | { |
| | | offset: 0, |
| | | color: "#FE7D2F", |
| | | }, |
| | | { |
| | | offset: 1, |
| | | color: "#F9D423", |
| | | }, |
| | | ]), |
| | | }, |
| | | }, |
| | | ], |
| | | }; |
| | | console.log("ss"); |
| | | // 使ç¨åæå®çé
ç½®é¡¹åæ°æ®æ¾ç¤ºå¾è¡¨ã |
| | | myxyChart.setOption(option); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .personage { |
| | | display: flex; |
| | | .text-center { |
| | | width: 40px; |
| | | height: 40px; |
| | | margin-right: 10px; |
| | | img { |
| | | width: 100%; |
| | | } |
| | | } |
| | | .information { |
| | | font-size: 25px; |
| | | .info-xx { |
| | | margin-top: 15px; |
| | | border-bottom: 2px solid rgb(65, 161, 190); |
| | | display: flex; |
| | | span { |
| | | margin-left: 30px; |
| | | } |
| | | .xinz-inf { |
| | | cursor: pointer; |
| | | margin-left: 20px; |
| | | height: 23px; |
| | | line-height: 23px; |
| | | padding: 2px; |
| | | align-items: center; |
| | | font-size: 16px; |
| | | color: rgb(85, 151, 250); |
| | | border: 1px solid #439fff; |
| | | border-radius: 9px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .el-tabs--border-card { |
| | | font-size: 25px; |
| | | .mulsz { |
| | | font-size: 25px; |
| | | margin-top: 20px; |
| | | } |
| | | } |
| | | .information-content { |
| | | margin-top: 20px; |
| | | background: #ffffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .top-message { |
| | | margin-top: 25px; |
| | | margin-left: 100px; |
| | | .detailed { |
| | | width: 70%; |
| | | padding: 30px; |
| | | margin-bottom: 30px; |
| | | background-color: #ddf0f8; |
| | | .one-column { |
| | | display: flex; |
| | | font-size: 20px; |
| | | margin-bottom: 30px; |
| | | padding-bottom: 3px; |
| | | .spanvalue { |
| | | display: inline-block; |
| | | min-width: 200px; |
| | | border-bottom: 1px solid rgb(172, 172, 172); |
| | | } |
| | | |
| | | div { |
| | | width: 330px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .headline { |
| | | font-size: 25px; |
| | | padding-left: 5px; |
| | | margin-bottom: 10px; |
| | | border-left: 8px solid rgb(65, 161, 190); |
| | | } |
| | | .bottom-message { |
| | | margin-bottom: 25px; |
| | | margin-left: 100px; |
| | | .Table-screen { |
| | | width: 70%; |
| | | padding: 30px; |
| | | margin-bottom: 30px; |
| | | background-color: #ddf0f8; |
| | | font-size: 20px !important; |
| | | } |
| | | } |
| | | } |
| | | .medical-record { |
| | | margin-top: 20px; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | background: #ffffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | } |
| | | .sontwoactiveName { |
| | | margin: 0 auto; |
| | | } |
| | | // .columcz { |
| | | // align-items: center!important; |
| | | // } |
| | | </style> |
copy from ruoyi-ui/src/views/system/user/profile/resetPwd.vue
copy to src/views/patient/patient/profile/resetPwd.vue
copy from ruoyi-ui/src/views/system/user/profile/userAvatar.vue
copy to src/views/patient/patient/profile/userAvatar.vue
copy from ruoyi-ui/src/views/system/user/profile/userInfo.vue
copy to src/views/patient/patient/profile/userInfo.vue
ÎļþÃû´Ó ruoyi-ui/src/views/register.vue ÐÞ¸Ä |
| | |
| | | <template> |
| | | <div class="register"> |
| | | <el-form ref="registerForm" :model="registerForm" :rules="registerRules" class="register-form"> |
| | | <el-form |
| | | ref="registerForm" |
| | | :model="registerForm" |
| | | :rules="registerRules" |
| | | class="register-form" |
| | | > |
| | | <h3 class="title">æºæ
§é访管çç³»ç»</h3> |
| | | <el-form-item prop="username"> |
| | | <el-input v-model="registerForm.username" type="text" auto-complete="off" placeholder="è´¦å·"> |
| | | <svg-icon slot="prefix" icon-class="user" class="el-input__icon input-icon" /> |
| | | <el-input |
| | | v-model="registerForm.username" |
| | | type="text" |
| | | auto-complete="off" |
| | | placeholder="è´¦å·" |
| | | > |
| | | <svg-icon |
| | | slot="prefix" |
| | | icon-class="user" |
| | | class="el-input__icon input-icon" |
| | | /> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="password"> |
| | |
| | | placeholder="å¯ç " |
| | | @keyup.enter.native="handleRegister" |
| | | > |
| | | <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> |
| | | <svg-icon |
| | | slot="prefix" |
| | | icon-class="password" |
| | | class="el-input__icon input-icon" |
| | | /> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="confirmPassword"> |
| | |
| | | placeholder="确认å¯ç " |
| | | @keyup.enter.native="handleRegister" |
| | | > |
| | | <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> |
| | | <svg-icon |
| | | slot="prefix" |
| | | icon-class="password" |
| | | class="el-input__icon input-icon" |
| | | /> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item prop="code" v-if="captchaEnabled"> |
| | |
| | | style="width: 63%" |
| | | @keyup.enter.native="handleRegister" |
| | | > |
| | | <svg-icon slot="prefix" icon-class="validCode" class="el-input__icon input-icon" /> |
| | | <svg-icon |
| | | slot="prefix" |
| | | icon-class="validCode" |
| | | class="el-input__icon input-icon" |
| | | /> |
| | | </el-input> |
| | | <div class="register-code"> |
| | | <img :src="codeUrl" @click="getCode" class="register-code-img"/> |
| | | <img :src="codeUrl" @click="getCode" class="register-code-img" /> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item style="width:100%;"> |
| | | <el-form-item style="width: 100%"> |
| | | <el-button |
| | | :loading="loading" |
| | | size="medium" |
| | | type="primary" |
| | | style="width:100%;" |
| | | style="width: 100%" |
| | | @click.native.prevent="handleRegister" |
| | | > |
| | | <span v-if="!loading">注 å</span> |
| | | <span v-else>注 å ä¸...</span> |
| | | </el-button> |
| | | <div style="float: right;"> |
| | | <router-link class="link-type" :to="'/login'">使ç¨å·²æè´¦æ·ç»å½</router-link> |
| | | <div style="float: right"> |
| | | <router-link class="link-type" :to="'/login'" |
| | | >使ç¨å·²æè´¦æ·ç»å½</router-link |
| | | > |
| | | </div> |
| | | </el-form-item> |
| | | </el-form> |
| | |
| | | password: "", |
| | | confirmPassword: "", |
| | | code: "", |
| | | uuid: "" |
| | | uuid: "", |
| | | }, |
| | | registerRules: { |
| | | username: [ |
| | | { required: true, trigger: "blur", message: "请è¾å
¥æ¨çè´¦å·" }, |
| | | { min: 2, max: 20, message: 'ç¨æ·è´¦å·é¿åº¦å¿
é¡»ä»äº 2 å 20 ä¹é´', trigger: 'blur' } |
| | | { |
| | | min: 2, |
| | | max: 20, |
| | | message: "ç¨æ·è´¦å·é¿åº¦å¿
é¡»ä»äº 2 å 20 ä¹é´", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | password: [ |
| | | { required: true, trigger: "blur", message: "请è¾å
¥æ¨çå¯ç " }, |
| | | { min: 5, max: 20, message: 'ç¨æ·å¯ç é¿åº¦å¿
é¡»ä»äº 5 å 20 ä¹é´', trigger: 'blur' } |
| | | { |
| | | min: 5, |
| | | max: 20, |
| | | message: "ç¨æ·å¯ç é¿åº¦å¿
é¡»ä»äº 5 å 20 ä¹é´", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | confirmPassword: [ |
| | | { required: true, trigger: "blur", message: "è¯·åæ¬¡è¾å
¥æ¨çå¯ç " }, |
| | | { required: true, validator: equalToPassword, trigger: "blur" } |
| | | { required: true, validator: equalToPassword, trigger: "blur" }, |
| | | ], |
| | | code: [{ required: true, trigger: "change", message: "请è¾å
¥éªè¯ç " }] |
| | | code: [{ required: true, trigger: "change", message: "请è¾å
¥éªè¯ç " }], |
| | | }, |
| | | loading: false, |
| | | captchaEnabled: true |
| | | captchaEnabled: true, |
| | | }; |
| | | }, |
| | | created() { |
| | |
| | | }, |
| | | methods: { |
| | | getCode() { |
| | | getCodeImg().then(res => { |
| | | this.captchaEnabled = res.captchaEnabled === undefined ? true : res.captchaEnabled; |
| | | getCodeImg().then((res) => { |
| | | this.captchaEnabled = |
| | | res.captchaEnabled === undefined ? true : res.captchaEnabled; |
| | | if (this.captchaEnabled) { |
| | | this.codeUrl = "data:image/gif;base64," + res.img; |
| | | this.registerForm.uuid = res.uuid; |
| | |
| | | }); |
| | | }, |
| | | handleRegister() { |
| | | this.$refs.registerForm.validate(valid => { |
| | | this.$refs.registerForm.validate((valid) => { |
| | | if (valid) { |
| | | this.loading = true; |
| | | register(this.registerForm).then(res => { |
| | | const username = this.registerForm.username; |
| | | this.$alert("<font color='red'>æåä½ ï¼æ¨çè´¦å· " + username + " 注åæåï¼</font>", 'ç³»ç»æç¤º', { |
| | | dangerouslyUseHTMLString: true, |
| | | type: 'success' |
| | | }).then(() => { |
| | | this.$router.push("/login"); |
| | | }).catch(() => {}); |
| | | }).catch(() => { |
| | | this.loading = false; |
| | | if (this.captchaEnabled) { |
| | | this.getCode(); |
| | | } |
| | | }) |
| | | register(this.registerForm) |
| | | .then((res) => { |
| | | const username = this.registerForm.username; |
| | | this.$alert( |
| | | "<font color='red'>æåä½ ï¼æ¨çè´¦å· " + |
| | | username + |
| | | " 注åæåï¼</font>", |
| | | "ç³»ç»æç¤º", |
| | | { |
| | | dangerouslyUseHTMLString: true, |
| | | type: "success", |
| | | } |
| | | ) |
| | | .then(() => { |
| | | this.$router.push("/login"); |
| | | }) |
| | | .catch(() => {}); |
| | | }) |
| | | .catch(() => { |
| | | this.loading = false; |
| | | if (this.captchaEnabled) { |
| | | this.getCode(); |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="Questionnairemanagement"> |
| | | <!-- 左侧æ --> |
| | | <div class="sidecolumn"> |
| | | <div class="sidecolumn-top"> |
| | | <div class="top-wj">æ£è
æ ç¾ç±»å</div> |
| | | <div class="top-tj" @click="dialogFormVisible = true">+æ·»å </div> |
| | | </div> |
| | | <div class="center-ss"> |
| | | <el-input |
| | | placeholder="请è¾å
¥å
容" |
| | | v-model="sidecolumnval" |
| | | class="input-with-select" |
| | | size="medium " |
| | | > |
| | | <el-button |
| | | @click="sidecolumnss" |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | ></el-button> |
| | | </el-input> |
| | | </div> |
| | | <div class="bottom-fl"> |
| | | <el-tabs tab-position="right"> |
| | | <el-tab-pane :label="`å
¨é¨ (${numberlb})`"></el-tab-pane> |
| | | <el-tab-pane |
| | | class="tab-paness" |
| | | :key="item.name" |
| | | v-for="(item, index) in editableTabs" |
| | | > |
| | | <span slot="label"> |
| | | {{ |
| | | item.title + " (" + item.number + ")" |
| | | }}   <el-popover |
| | | placement="top-start" |
| | | width="100" |
| | | trigger="hover" |
| | | > |
| | | <div style="text-align: center"> |
| | | <el-button type="text" @click="popoveramend">ä¿®æ¹</el-button |
| | | ><el-button type="text" @click="deleteVisible = true" |
| | | ><span style="color: rgb(173, 55, 55)" |
| | | >å é¤</span |
| | | ></el-button |
| | | > |
| | | </div> |
| | | <i slot="reference" class="el-icon-share"></i> </el-popover |
| | | ></span> |
| | | </el-tab-pane> |
| | | |
| | | <el-tab-pane :label="`æªåç»(${numberlbs})`"></el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </div> |
| | | <!-- å³ä¾§æ°æ® --> |
| | | <div class="leftvlue"> |
| | | <div class="leftvlue-top"></div> |
| | | <div class="leftvlue-bg"> |
| | | <el-row :gutter="20"> |
| | | <!--ç¨æ·æ°æ®--> |
| | | <el-col :span="24" :xs="24"> |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="æ ç¾åç§°" prop="userName"> |
| | | <el-input |
| | | v-model="queryParams.userName" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="medium" |
| | | @click="handleQuery" |
| | | >æç´¢</el-button |
| | | > |
| | | <el-button |
| | | icon="el-icon-refresh" |
| | | size="medium" |
| | | @click="resetQuery" |
| | | >éç½®</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="lstamendtagVisible = true" |
| | | v-hasPermi="['system:user:add']" |
| | | >æ°å¢</el-button |
| | | > |
| | | </el-col> |
| | | |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="danger" |
| | | plain |
| | | icon="el-icon-delete" |
| | | size="medium" |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['system:user:remove']" |
| | | >å é¤</el-button |
| | | > |
| | | </el-col> |
| | | |
| | | <!-- <el-col :span="1.5"> </el-col> --> |
| | | </el-row> |
| | | <!-- <right-toolbar |
| | | :showSearch.sync="showSearch" |
| | | @queryTable="getList" |
| | | :columns="columns" |
| | | ></right-toolbar> --> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="userList" |
| | | :border="true" |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | | <el-table-column |
| | | label="åºå·" |
| | | align="center" |
| | | key="userId" |
| | | prop="userId" |
| | | /> |
| | | <el-table-column |
| | | label="æ ç¾åç§°" |
| | | align="center" |
| | | key="userName" |
| | | prop="userName" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="æè¿ç¼è¾" |
| | | align="center" |
| | | key="nickName" |
| | | prop="nickName" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="æ ç¾æè¿°" |
| | | align="center" |
| | | key="aphonenumber" |
| | | prop="aphonenumber" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="ç¶æ" |
| | | align="center" |
| | | key="aphonenumbers" |
| | | prop="aphonenumbers" |
| | | width="120" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-switch |
| | | v-model="scope.row.delivery" |
| | | @change="handleStatusChange(scope.row)" |
| | | ></el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="æä½" |
| | | align="center" |
| | | width="300" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | ><span class="button-textxg" |
| | | ><i class="el-icon-edit"></i>ä¿®æ¹</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:user:remove']" |
| | | ><span class="button-textsc" |
| | | ><i class="el-icon-delete"></i>å é¤</span |
| | | ></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-col> |
| | | </el-row> |
| | | </div> |
| | | </div> |
| | | <!-- æ·»å ç±»å«å¼¹æ¡ --> |
| | | <el-dialog |
| | | :title="amendtag ? 'ä¿®æ¹ç±»å«' : 'æ°å¢ç±»å«'" |
| | | width="30%" |
| | | :visible.sync="dialogFormVisible" |
| | | > |
| | | <el-form :model="sidecolumnform"> |
| | | <el-form-item |
| | | :label="amendtag ? '请è¾å
¥æ°çç±»å«åç§°' : '请è¾å
¥ç±»å«åç§°'" |
| | | > |
| | | <el-input |
| | | v-model="sidecolumnform.classesname" |
| | | autocomplete="off" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="dialogFormVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitsidecolumn">ç¡® å®</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- å é¤ç±»å«ç¡®è®¤æ¡ --> |
| | | <el-dialog title="è¦å" :visible.sync="deleteVisible" width="40%"> |
| | | <div style="font-size: 20px; color: rgb(247, 76, 76)"> |
| | | æ¯å¦ç¡®è®¤å é¤åç±»ï¼[<span>{{ deletefenl }}</span |
| | | >]? |
| | | </div> |
| | | <div style="font-size: 20px"> |
| | | æ¤æä½ä¼å°è¯¥ç±»å«ä¸æææ¨¡å转移è³[æªåç±»]ï¼æ¯å¦ç»§ç»å 餿¤åç±»ï¼ |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="deleteVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="deleteVisible = false" |
| | | >ç¡® å®</el-button |
| | | > |
| | | </span> |
| | | </el-dialog> |
| | | <!-- ä¿®æ¹/æ·»å æ ç¾å¼¹æ¡ --> |
| | | <el-dialog |
| | | :title="lstamendtag ? 'ä¿®æ¹æ ç¾' : 'æ°å¢æ ç¾'" |
| | | width="30%" |
| | | :visible.sync="lstamendtagVisible" |
| | | > |
| | | <el-form ref="form" :model="tagform" label-width="80px"> |
| | | <el-form-item label="æ ç¾åç§°"> |
| | | <el-input v-model="tagform.name"></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æ¯å¦å¯ç¨"> |
| | | <el-switch v-model="tagform.delivery"></el-switch> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æ ç¾æè¿°"> |
| | | <el-input type="textarea" v-model="tagform.desc"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button @click="lstamendtagVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="submitsidecolumn">ç¡® å®</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | listUser, |
| | | getUser, |
| | | delUser, |
| | | addUser, |
| | | updateUser, |
| | | } from "@/api/system/user"; |
| | | import { getToken } from "@/utils/auth"; |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | export default { |
| | | name: "questionnaire", |
| | | dicts: ["sys_normal_disable", "sys_user_sex"], |
| | | components: { Treeselect }, |
| | | data() { |
| | | return { |
| | | topactiveName: "Local", //é¡¶é¨éæ© |
| | | // é®ç½©å± |
| | | loading: false, |
| | | // é䏿°ç» |
| | | ids: [], |
| | | // éå个ç¦ç¨ |
| | | single: true, |
| | | // éå¤ä¸ªç¦ç¨ |
| | | multiple: true, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | amendtag: false, //æ¯å¦ä¿®æ¹ç±»å« |
| | | lstamendtag: false, //æ¯å¦ä¿®æ¹æ ç¾ |
| | | scavisible: false, //å é¤å¼¹æ¡ |
| | | deleteVisible: false, //åç±»å é¤å¼¹æ¡ |
| | | deletefenl: "é«è¡å", //å é¤é¡¹ |
| | | //ä¿®æ¹æ·»å æ ç¾å¼¹æ¡æ°æ® |
| | | tagform: { |
| | | delivery: "", |
| | | name: "", |
| | | desc: "", |
| | | }, |
| | | // æ ç¾è¡¨æ ¼æ°æ® |
| | | userList: [ |
| | | { |
| | | userId: 1, |
| | | userName: "ä¸å·", |
| | | nickName: "1.2.4", |
| | | aphonenumber: "å
³èçç", |
| | | delivery: true, |
| | | aphonenumbers: "", |
| | | bphonenumber: "徿£", |
| | | cphonenumber: "2022-12-12 ", |
| | | }, |
| | | ], |
| | | // å¼¹åºå±æ é¢ |
| | | title: "", |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå± |
| | | open: false, |
| | | // æ¥æèå´ |
| | | dateRange: [], |
| | | // å²ä½é项 |
| | | postOptions: [], |
| | | // è§è²é项 |
| | | roleOptions: [], |
| | | // 表ååæ° |
| | | form: {}, |
| | | numberlb: 22, |
| | | numberlbs: 2, |
| | | sidecolumnform: { |
| | | classesname: "", |
| | | }, //æ·»å ç±»å«è¡¨å |
| | | dialogFormVisible: false, //æ·»å ãä¿®æ¹ç±»å«å¼¹æ¡ |
| | | lstamendtagVisible: false, //æ·»å ãä¿®æ¹æ ç¾å¼¹æ¡ |
| | | goQRCodeVisible: false, //äºç»´ç å¼¹æ¡ |
| | | sidecolumnval: "", //ç±»å«æç´¢ |
| | | propss: { multiple: true }, |
| | | optionss: [ |
| | | { |
| | | value: 1, |
| | | label: "ä¸å", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "西å", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "仨仨仨", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "å
é£é£é£", |
| | | }, |
| | | ], |
| | | //ç±»å«å表 |
| | | editableTabs: [ |
| | | { |
| | | title: "é«è¡å", |
| | | number: "1", |
| | | }, |
| | | { |
| | | title: "ç³å°¿ç
", |
| | | number: "2", |
| | | }, |
| | | { |
| | | title: "骨æ", |
| | | number: "2", |
| | | }, |
| | | { |
| | | title: "å¿èç
", |
| | | number: "2", |
| | | }, |
| | | ], |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | userName: undefined, |
| | | phonenumber: undefined, |
| | | status: undefined, |
| | | deptId: undefined, |
| | | IDnumber: undefined, |
| | | }, |
| | | // åä¿¡æ¯ |
| | | columns: [ |
| | | { key: 0, label: `ç¨æ·ç¼å·`, visible: true }, |
| | | { key: 1, label: `ç¨æ·åç§°`, visible: true }, |
| | | { key: 2, label: `ç¨æ·æµç§°`, visible: true }, |
| | | { key: 3, label: `é¨é¨`, visible: true }, |
| | | { key: 4, label: `ææºå·ç `, visible: true }, |
| | | { key: 5, label: `ç¶æ`, visible: true }, |
| | | { key: 6, label: `å建æ¶é´`, visible: true }, |
| | | ], |
| | | // è¡¨åæ ¡éª |
| | | rules: { |
| | | userName: [ |
| | | { required: true, message: "ç¨æ·åç§°ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | { |
| | | min: 2, |
| | | max: 20, |
| | | message: "ç¨æ·åç§°é¿åº¦å¿
é¡»ä»äº 2 å 20 ä¹é´", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | nickName: [ |
| | | { required: true, message: "ç¨æ·æµç§°ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | ], |
| | | password: [ |
| | | { required: true, message: "ç¨æ·å¯ç ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | { |
| | | min: 5, |
| | | max: 20, |
| | | message: "ç¨æ·å¯ç é¿åº¦å¿
é¡»ä»äº 5 å 20 ä¹é´", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | email: [ |
| | | { |
| | | type: "email", |
| | | message: "请è¾å
¥æ£ç¡®çé®ç®±å°å", |
| | | trigger: ["blur", "change"], |
| | | }, |
| | | ], |
| | | phonenumber: [ |
| | | { |
| | | pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, |
| | | message: "请è¾å
¥æ£ç¡®çææºå·ç ", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | IDnumber: [ |
| | | { |
| | | pattern: |
| | | /^\d{6}((((((19|20)\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|(((19|20)\d{2})(0[13578]|1[02])31)|((19|20)\d{2})02(0[1-9]|1\d|2[0-8])|((((19|20)([13579][26]|[2468][048]|0[48]))|(2000))0229))\d{3})|((((\d{2})(0[13-9]|1[012])(0[1-9]|[12]\d|30))|((\d{2})(0[13578]|1[02])31)|((\d{2})02(0[1-9]|1\d|2[0-8]))|(([13579][26]|[2468][048]|0[048])0229))\d{2}))(\d|X|x)$/, |
| | | message: "请è¾å
¥æ£ç¡®ç身份è¯å·ç ", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | watch: {}, |
| | | created() { |
| | | this.getList(); |
| | | }, |
| | | |
| | | methods: { |
| | | /** æ¥è¯¢ç¨æ·å表 */ |
| | | getList() { |
| | | // this.loading = true; |
| | | listUser().then((response) => { |
| | | console.log(response); |
| | | // this.userList = response.data; |
| | | // this.total = response.total; |
| | | // this.loading = false; |
| | | console.log(this.userList); |
| | | }); |
| | | // const { rows } = await listUser(); |
| | | // console.log(rows); |
| | | // this.list = rows; |
| | | }, |
| | | // æ·»å ç±»å« |
| | | submitsidecolumn() { |
| | | this.dialogFormVisible = false; |
| | | this.tagform = { |
| | | delivery: "", |
| | | name: "", |
| | | desc: "", |
| | | }; |
| | | }, |
| | | // ä¿®æ¹å¼¹æ¡ |
| | | popoveramend() { |
| | | this.amendtag = true; |
| | | this.dialogFormVisible = true; |
| | | }, |
| | | //æç´¢ç±»å« |
| | | sidecolumnss() {}, |
| | | // 忢å
±äº«/æ¬å° |
| | | tophandleClick() {}, |
| | | // åæ¶æé® |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | // 表åéç½® |
| | | reset() { |
| | | this.form = { |
| | | userId: undefined, |
| | | deptId: undefined, |
| | | userName: undefined, |
| | | nickName: undefined, |
| | | password: undefined, |
| | | phonenumber: undefined, |
| | | email: undefined, |
| | | sex: undefined, |
| | | status: "0", |
| | | remark: undefined, |
| | | postIds: [], |
| | | roleIds: [], |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | // ç¨æ·ç¶æä¿®æ¹ |
| | | handleStatusChange(row) { |
| | | let text = row.status === "0" ? "å¯ç¨" : "åç¨"; |
| | | this.$modal |
| | | .confirm('确认è¦"' + text + '""' + row.userName + '"æ ç¾åï¼') |
| | | .then(function () { |
| | | // return changeUserStatus(row.userId, row.status); |
| | | }) |
| | | .then(() => { |
| | | this.$modal.msgSuccess(text + "æå"); |
| | | }) |
| | | .catch(function () { |
| | | row.status = row.status === "0" ? "1" : "0"; |
| | | }); |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.resetForm("queryForm"); |
| | | this.queryParams.deptId = undefined; |
| | | this.$refs.tree.setCurrentKey(null); |
| | | this.handleQuery(); |
| | | }, |
| | | // å¤éæ¡é䏿°æ® |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map((item) => item.userId); |
| | | this.single = selection.length != 1; |
| | | this.multiple = !selection.length; |
| | | }, |
| | | /** ä¿®æ¹æ ç¾ */ |
| | | handleUpdate(row) { |
| | | console.log(row, "ä¿®æ¹æ ç¾"); |
| | | this.lstamendtagVisible = true; |
| | | this.lstamendtag = true; |
| | | this.tagform = { |
| | | delivery: row.delivery, |
| | | name: row.userName, |
| | | desc: row.bphonenumber, |
| | | }; |
| | | }, |
| | | // æ¥çé®å· |
| | | ViewQuestionnaire() { |
| | | this.$router.push({ |
| | | path: "/knowledge/questionnaire/examine/", |
| | | query: { id: "1" }, |
| | | }); |
| | | }, |
| | | |
| | | /** æ´æ°/ä¿®æ¹æäº¤æé® */ |
| | | submitForm: function () { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | if (this.form.userId != undefined) { |
| | | updateUser(this.form).then((response) => { |
| | | this.$modal.msgSuccess("ä¿®æ¹æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } else { |
| | | addUser(this.form).then((response) => { |
| | | this.$modal.msgSuccess("æ°å¢æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | /** å é¤æé®æä½ */ |
| | | handleDelete(row) { |
| | | console.log(row, "å é¤å¼¹çª"); |
| | | const userIds = row.userId || this.ids; |
| | | const aphonenumber = row.aphonenumber; |
| | | this.$modal |
| | | .confirm( |
| | | aphonenumber |
| | | ? 'æ¯å¦ç¡®è®¤å 餿 ç¾å称为"' + aphonenumber + '"çæ°æ®é¡¹ï¼' |
| | | : "æ¯å¦ç¡®è®¤å é¤éä¸çæ°æ®é¡¹ï¼" |
| | | ) |
| | | .then(function () { |
| | | return delUser(userIds); |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .Questionnairemanagement { |
| | | display: flex; |
| | | } |
| | | .sidecolumn { |
| | | width: 300px; |
| | | min-height: 100vh; |
| | | text-align: center; |
| | | // display: flex; |
| | | margin-top: 20px; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | background: #edf1f7; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .sidecolumn-top { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | .top-wj { |
| | | font-size: 20px; |
| | | } |
| | | .top-tj { |
| | | font-size: 18px; |
| | | |
| | | color: rgb(0, 89, 255); |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | .center-ss { |
| | | margin-top: 30px; |
| | | .input-with-select { |
| | | height: 40px !important; |
| | | } |
| | | } |
| | | .bottom-fl { |
| | | margin-top: 30px; |
| | | display: center !important; |
| | | } |
| | | } |
| | | .qrcode-dialo { |
| | | text-align: center; |
| | | // display: flex; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | background: #edf1f7; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .qrcode-text { |
| | | font-size: 20px; |
| | | span { |
| | | margin-left: 20px; |
| | | } |
| | | } |
| | | .qrcode-img { |
| | | width: 300px; |
| | | height: 400px; |
| | | } |
| | | } |
| | | ::v-deep.el-tabs--left, |
| | | .el-tabs--right { |
| | | overflow: hidden; |
| | | align-items: center; |
| | | display: flex; |
| | | } |
| | | ::v-deep.el-input--medium .el-input__inner { |
| | | height: 40px !important; |
| | | } |
| | | ::v-deep.el-tabs--right .el-tabs__active-bar.is-right { |
| | | height: 40px; |
| | | width: 5px; |
| | | left: 0; |
| | | } |
| | | ::v-deep.el-tabs--right .el-tabs__item.is-right { |
| | | display: block; |
| | | text-align: left; |
| | | font-size: 20px; |
| | | } |
| | | |
| | | .leftvlue { |
| | | // display: flex; |
| | | // flex: 1; |
| | | width: 80%; |
| | | margin-top: 20px; |
| | | // margin: 20px; |
| | | padding: 30px; |
| | | background: #ffff; |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | .mulsz { |
| | | font-size: 20px; |
| | | } |
| | | } |
| | | .button-text { |
| | | color: rgb(70, 204, 238); |
| | | } |
| | | .button-textck { |
| | | color: rgb(39, 167, 67); |
| | | } |
| | | .button-textxg { |
| | | color: rgb(35, 81, 233); |
| | | } |
| | | .button-textsc { |
| | | color: rgb(235, 23, 23); |
| | | } |
| | | </style> |