Merge branch 'develop' of http://116.62.18.175:6699/r/~yxh/smartor-web into yxh01
| | |
| | | "@riophae/vue-treeselect": "0.4.0", |
| | | "axios": "0.24.0", |
| | | "clipboard": "2.0.8", |
| | | "core-js": "3.25.3", |
| | | "core-js": "^3.25.3", |
| | | "cos-js-sdk-v5": "^1.4.18", |
| | | "dayjs": "^1.11.7", |
| | | "echarts": "^5.4.2", |
| | |
| | | "file-saver": "^2.0.5", |
| | | "fuse.js": "6.4.3", |
| | | "highlight.js": "9.18.5", |
| | | "jquery": "^3.7.0", |
| | | "js-beautify": "1.13.0", |
| | | "js-cookie": "3.0.1", |
| | | "jsencrypt": "3.0.0-rc.1", |
| | | "nprogress": "0.2.0", |
| | | "quill": "1.3.7", |
| | | "quill-image-drop-module": "^1.0.3", |
| | | "quill-image-resize": "^3.0.9", |
| | | "quill-image-resize-module": "^3.0.0", |
| | | "screenfull": "5.0.2", |
| | | "sortablejs": "1.10.2", |
| | | "vue": "2.6.12", |
| | |
| | | "vue-count-to": "1.0.13", |
| | | "vue-cropper": "0.5.5", |
| | | "vue-meta": "2.4.0", |
| | | "vue-quill-editor": "^3.0.6", |
| | | "vue-router": "3.4.9", |
| | | "vuedraggable": "2.24.3", |
| | | "vuex": "3.6.0", |
| | |
| | | data: data |
| | | }) |
| | | }; |
| | | // æ ç¾æ¥è¯¢æ£è
å表 |
| | | export function taglistpatient(data) { |
| | | return request({ |
| | | url: '/smartor/patarchive/patTagByContion', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | }; |
| | | // ä¿®æ¹æ£è
æ¡£æ¡ |
| | | export function alterpatient(data) { |
| | | return request({ |
| | |
| | | import { parseStrEmpty } from "@/utils/ruoyi";//å¤çå符串,und,null转æ¢ä¸º''; |
| | | |
| | | // ä¿®æ¹æ ç¾ |
| | | export function amendtag(data) { |
| | | export function toamendtag(data) { |
| | | return request({ |
| | | url: '/base/tag', |
| | | method: 'put', |
| | | data: data |
| | | }) |
| | | }; |
| | | // æ ç¾ç¶æä¿®æ¹ |
| | | export function changetagcategory(tagid, isupload) { |
| | | const data = { |
| | | tagid, |
| | | isupload |
| | | } |
| | | return request({ |
| | | url: '/base/tag', |
| | | method: 'put', |
| | | data: data |
| | | }) |
| | | } |
| | | // ä¿®æ¹æ ç¾ç±»å« |
| | | export function toamendtagcategory(data) { |
| | | return request({ |
| | | url: '/system/tagcategory', |
| | | method: 'put', |
| | | data: data |
| | | }) |
| | |
| | | data: data |
| | | }) |
| | | }; |
| | | // æ°å¢æ ç¾ç±»å« |
| | | export function addtagcategory(data) { |
| | | return request({ |
| | | url: '/system/tagcategory', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * |
| | | * @param {æ ç¾id} userId |
| | | * @param {æ ç¾id} tagid |
| | | * è·åæ ç¾è¯¦æ
|
| | | * @returns |
| | | */ |
| | | export function detailstag(userId) { |
| | | export function detailstag(tagid) { |
| | | return request({ |
| | | url: '/base/tag/'+ userId, |
| | | url: '/base/tag/'+ tagid, |
| | | method: 'get', |
| | | }) |
| | | }; |
| | |
| | | |
| | | /** |
| | | * |
| | | * @param {æ ç¾id} userId |
| | | * @param {æ ç¾id} tagid |
| | | * å 餿 ç¾ |
| | | * @returns |
| | | */ |
| | | export function deletetag(userId) { |
| | | export function deletetag(tagids) { |
| | | return request({ |
| | | url: '/base/tag/' + userId, |
| | | url: '/base/tag/' + tagids, |
| | | method: 'delete', |
| | | }) |
| | | }; |
| | | // å¯¼åºæ ç¾å表 |
| | | /** |
| | | * |
| | | * @param {æ ç¾id} tagid |
| | | * å 餿 ç¾åç±» |
| | | * @returns |
| | | */ |
| | | export function deletetagcategory(tagid) { |
| | | return request({ |
| | | url: '/system/tagcategory/' + tagid, |
| | | method: 'delete', |
| | | }) |
| | | }; |
| | | /** |
| | | * |
| | | * @param {*} data |
| | | * å¯¼åºæ ç¾å表 |
| | | * @returns |
| | | */ |
| | | export function exporttag(data) { |
| | | return request({ |
| | | url: '/base/tag/export', |
| | |
| | | data: data |
| | | }) |
| | | }; |
| | | // æ¥è¯¢æ ç¾å表 |
| | | export function listtag(query) { |
| | | /** |
| | | * |
| | | * @param {object} |
| | | * æ¥è¯¢æ ç¾å表 |
| | | * @returns |
| | | */ |
| | | export function listtag(data) { |
| | | return request({ |
| | | url: '/base/tag/list', |
| | | method: 'get', |
| | | params: query |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | }; |
| | | /** |
| | | * @param {name} |
| | | * è·åæ ç¾åç±»å表 |
| | | * @returns |
| | | */ |
| | | export function tagclassifylist(params) { |
| | | return request({ |
| | | url: '/system/tagcategory/baseTagCategoryByName', |
| | | method: 'post', |
| | | params: params, |
| | | }) |
| | | }; |
| | |
| | | import directive from './directive' // directive |
| | | import plugins from './plugins' // plugins |
| | | import { download } from '@/utils/request' |
| | | //å¼å
¥quill-editorç¼è¾å¨ |
| | | import VueQuillEditor from 'vue-quill-editor' |
| | | // require styles å¼å
¥æ ·å¼ |
| | | import 'quill/dist/quill.core.css' |
| | | import 'quill/dist/quill.snow.css' |
| | | import 'quill/dist/quill.bubble.css' |
| | | Vue.use(VueQuillEditor) |
| | | |
| | | //å®ç°quill-editorç¼è¾å¨ææ½ä¸ä¼ å¾ç |
| | | // import Quill from 'quill' |
| | | import {Quill} from 'vue-quill-editor' |
| | | window.Quill = Quill; |
| | | import imageResize from 'quill-image-resize' |
| | | // const scriptEl = document.createElement('script'); |
| | | // scriptEl.charset = 'utf-8' |
| | | // scriptEl.src = './image-resize.min.js' |
| | | // const head = document.head || document.getElementsByTagName('head')[0]; |
| | | // head.appendChild(scriptEl); |
| | | |
| | | import { ImageDrop } from 'quill-image-drop-module' |
| | | // import imageResize from 'quill-image-resize' |
| | | Quill.register('modules/imageDrop', ImageDrop) |
| | | // import imageResize from 'quill-image-resize-module' |
| | | Quill.register('modules/imageResize', imageResize) |
| | | //å®ç°quill-editorç¼è¾å¨è°æ´å¾ç尺寸 |
| | | // Quill.register('modules/imageResize', ImageResize) |
| | | |
| | | import './assets/icons' // icon |
| | | import './permission' // permission control |
| | |
| | | Vue.use(VueMeta) |
| | | DictData.install() |
| | | Vue.use(components) |
| | | // Vue.use(VueQuillEditor) |
| | | |
| | | |
| | | /** |
| | | * If you don't want to use mock-server |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div class="educationmanagement"> |
| | | <!-- 左侧æ --> |
| | | <div class="sidecolumn"> |
| | | <el-menu |
| | | default-active="2" |
| | | class="el-menu-vertical-demo" |
| | | @open="handleOpen" |
| | | @close="handleClose" |
| | | background-color="#545c64" |
| | | text-color="#fff" |
| | | active-text-color="#ffd04b" |
| | | > |
| | | <el-submenu index="1"> |
| | | <template slot="title"> |
| | | <i class="el-icon-location"></i> |
| | | <span>导èªä¸</span> |
| | | </template> |
| | | <el-menu-item-group> |
| | | <template slot="title">åç»ä¸</template> |
| | | <el-menu-item index="1-1">é项1</el-menu-item> |
| | | <el-menu-item index="1-2">é项2</el-menu-item> |
| | | </el-menu-item-group> |
| | | <el-menu-item-group title="åç»2"> |
| | | <el-menu-item index="1-3">é项3</el-menu-item> |
| | | </el-menu-item-group> |
| | | <el-submenu index="1-4"> |
| | | <template slot="title">é项4</template> |
| | | <el-menu-item index="1-4-1">é项1</el-menu-item> |
| | | </el-submenu> |
| | | </el-submenu> |
| | | <el-menu-item index="2"> |
| | | <i class="el-icon-menu"></i> |
| | | <span slot="title">导èªäº</span> |
| | | </el-menu-item> |
| | | <el-menu-item index="3" disabled> |
| | | <i class="el-icon-document"></i> |
| | | <span slot="title">导èªä¸</span> |
| | | </el-menu-item> |
| | | <el-menu-item index="4"> |
| | | <i class="el-icon-setting"></i> |
| | | <span slot="title">导èªå</span> |
| | | </el-menu-item> |
| | | </el-menu> |
| | | </div> |
| | | <!-- å³ä¾§æ°æ® --> |
| | | <div class="leftvlue"> |
| | | <div class="leftvalu-top"> |
| | | <el-tabs |
| | | v-model="editableTabsValue" |
| | | type="card" |
| | | editable |
| | | @edit="handleTabsEdit" |
| | | > |
| | | <el-tab-pane |
| | | :key="item.name" |
| | | v-for="(item, index) in editableTabs" |
| | | :label="item.title" |
| | | :name="item.name" |
| | | > |
| | | {{ item.content }} |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | name: "education", |
| | | |
| | | data() { |
| | | return { |
| | | editableTabsValue: "2", |
| | | editableTabs: [ |
| | | { |
| | | title: "Tab 1", |
| | | name: "1", |
| | | content: "Tab 1 content", |
| | | }, |
| | | { |
| | | title: "Tab 2", |
| | | name: "2", |
| | | content: "Tab 2 content", |
| | | }, |
| | | ], |
| | | tabIndex: 2, |
| | | }; |
| | | }, |
| | | |
| | | methods: { |
| | | handleClose(key, keyPath) { |
| | | console.log(key, keyPath); |
| | | }, |
| | | handleOpen(key, keyPath) { |
| | | console.log(key, keyPath); |
| | | }, |
| | | handleTabsEdit(targetName, action) { |
| | | if (action === "add") { |
| | | let newTabName = ++this.tabIndex + ""; |
| | | this.editableTabs.push({ |
| | | title: "New Tab", |
| | | name: newTabName, |
| | | content: "New Tab content", |
| | | }); |
| | | this.editableTabsValue = newTabName; |
| | | } |
| | | if (action === "remove") { |
| | | let tabs = this.editableTabs; |
| | | let activeName = this.editableTabsValue; |
| | | if (activeName === targetName) { |
| | | tabs.forEach((tab, index) => { |
| | | if (tab.name === targetName) { |
| | | let nextTab = tabs[index + 1] || tabs[index - 1]; |
| | | if (nextTab) { |
| | | activeName = nextTab.name; |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | |
| | | this.editableTabsValue = activeName; |
| | | this.editableTabs = tabs.filter((tab) => tab.name !== targetName); |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </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: 10px; |
| | | 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> |
| | |
| | | <!-- 宣æå
容 --> |
| | | <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> |
| | | <el-button @click="openContent" type="primary">æ¥çå
ç´ </el-button> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="success" @click="submitForm('ruleForm')" |
| | | >ç«å³å建</el-button |
| | | <div id="quillEditorQiniu"> |
| | | <!-- åºäºelementUiçä¸ä¼ ç»ä»¶ el-upload begin--> |
| | | <el-upload |
| | | class="avatar-uploader" |
| | | :action="uploadImgUrl" |
| | | :accept="'image/*,video/*'" |
| | | :show-file-list="false" |
| | | :on-success="uploadEditorSuccess" |
| | | :on-error="uploadEditorError" |
| | | :before-upload="beforeEditorUpload" |
| | | :headers="headers" |
| | | > |
| | | <el-button type="primary" @click="laststep()">ä¸ä¸æ¥</el-button> |
| | | <el-button @click="resetForm('ruleForm')">éç½®</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-upload> |
| | | <!-- åºäºelementUiçä¸ä¼ ç»ä»¶ el-upload end--> |
| | | <quill-editor |
| | | class="editor" |
| | | v-model="content" |
| | | ref="customQuillEditor" |
| | | :options="editorOption" |
| | | > |
| | | </quill-editor> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { quillEditor } from "vue-quill-editor"; |
| | | // import * as Quill from "quill"; |
| | | import Quill from "quill"; |
| | | |
| | | // è¿éå¼å
¥ä¿®æ¹è¿çvideo模å并注å |
| | | import Video from "./video"; |
| | | Quill.register(Video, true); |
| | | //è·åç»å½tokenï¼å¼å
¥æä»¶ï¼å¦æåªæ¯ç®åæµè¯ï¼æ²¡æä¸ä¼ æä»¶æ¯å¦ç»å½çéå¶çè¯ï¼ |
| | | //è¿ä¸ªtokenå¯ä»¥ä¸ç¨è·åï¼æä»¶å¯ä»¥ä¸å¼å
¥ï¼æä¸é¢å¯¹åºçä¸ä¼ æä»¶æºå¸¦è¯·æ±å¤´ :headers="headers" è¿ä¸ªä»£ç å æå³å¯ |
| | | import { getToken } from "@/utils/auth"; |
| | | const toolbarOptions = [ |
| | | ["bold", "italic", "underline", "strike"], // toggled buttons |
| | | ["blockquote", "code-block"], |
| | | |
| | | [{ header: 1 }, { header: 2 }], // custom button values |
| | | [{ list: "ordered" }, { list: "bullet" }], |
| | | [{ script: "sub" }, { script: "super" }], // superscript/subscript |
| | | [{ indent: "-1" }, { indent: "+1" }], // outdent/indent |
| | | [{ direction: "rtl" }], // text direction |
| | | |
| | | [{ size: ["small", false, "large", "huge"] }], // custom dropdown |
| | | [{ header: [1, 2, 3, 4, 5, 6, false] }], |
| | | |
| | | [{ color: [] }, { background: [] }], // dropdown with defaults from theme |
| | | [{ font: [] }], |
| | | [{ align: [] }], |
| | | ["link", "image", "video"], |
| | | ["clean"], // remove formatting button |
| | | ]; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | headers: { |
| | | Authorization: "Bearer " + getToken(), |
| | | }, |
| | | uploadImgUrl: "/v1/admin/common/upload", |
| | | uploadUrlPath: "没ææä»¶ä¸ä¼ ", |
| | | quillUpdateImg: false, |
| | | content: "", //æç»ä¿åçå
容 |
| | | editorOption: { |
| | | placeholder: "ä½ æ³è¯´ä»ä¹ï¼", |
| | | modules: { |
| | | imageResize: { |
| | | displayStyles: { |
| | | backgroundColor: "black", |
| | | border: "none", |
| | | color: "white", |
| | | }, |
| | | modules: ["Resize", "DisplaySize", "Toolbar"], |
| | | }, |
| | | toolbar: { |
| | | container: toolbarOptions, // å·¥å
·æ |
| | | handlers: { |
| | | image: function (value) { |
| | | if (value) { |
| | | document |
| | | .querySelector("#quillEditorQiniu .avatar-uploader input") |
| | | .click(); |
| | | } else { |
| | | this.quill.format("image", false); |
| | | } |
| | | }, |
| | | video: function (value) { |
| | | if (value) { |
| | | document |
| | | .querySelector("#quillEditorQiniu .avatar-uploader input") |
| | | .click(); |
| | | } else { |
| | | this.quill.format("video", false); |
| | | } |
| | | }, |
| | | }, |
| | | }, |
| | | }, |
| | | }, |
| | | |
| | | sidecolumnrabs: "left", //æ¹å |
| | | Editprogress: 1, //ç¼è¾è¿åº¦ |
| | | currentVersion: "1.2.3", //å½åçæ¬ |
| | |
| | | }, |
| | | |
| | | created() {}, |
| | | watch: { |
| | | content(newVal, oldVal) { |
| | | //this.$emit('input', newVal); |
| | | console.log(newVal); |
| | | console.log(oldVal); |
| | | }, |
| | | }, |
| | | |
| | | methods: { |
| | | submitForm(formName) { |
| | |
| | | }, |
| | | resetForm(formName) { |
| | | this.$refs[formName].resetFields(); |
| | | }, |
| | | |
| | | //ä¸ä¼ å¾çä¹åasync |
| | | beforeEditorUpload(res, file) { |
| | | //æ¾ç¤ºä¸ä¼ å¨ç» |
| | | this.quillUpdateImg = true; |
| | | // const res1 = await uploadImage() |
| | | // console.log(res1,'====='); |
| | | // this.$emit('before',res, file) |
| | | console.log(res); |
| | | console.log(file); |
| | | }, |
| | | // ä¸ä¼ å¾çæå |
| | | uploadEditorSuccess(res, file) { |
| | | console.log("ä¸ä¼ æå"); |
| | | // this.$emit('upload',res, file) |
| | | console.log(res, file); |
| | | //æ¼æ¥åºä¸ä¼ çå¾ç卿å¡å¨ç宿´å°å |
| | | let imgUrl = res.data.url; |
| | | let type = imgUrl.substring(imgUrl.lastIndexOf(".") + 1); |
| | | console.log(type); |
| | | // è·å坿æ¬ç»ä»¶å®ä¾ |
| | | let quill = this.$refs.customQuillEditor.quill; |
| | | // è·åå
æ æå¨ä½ç½® |
| | | let length = quill.getSelection().index; |
| | | // æå
¥å¾ç||è§é¢ res.info为æå¡å¨è¿åçå¾çå°å |
| | | if (type == "mp4" || type == "MP4") { |
| | | window.jsValue = imgUrl; |
| | | quill.insertEmbed(length, "video", imgUrl); |
| | | } else { |
| | | quill.insertEmbed(length, "image", imgUrl); |
| | | } |
| | | // è°æ´å
æ å°æå |
| | | quill.setSelection(length + 1); |
| | | //åæ¶ä¸ä¼ å¨ç» |
| | | this.quillUpdateImg = false; |
| | | }, |
| | | // ä¸ä¼ (æä»¶)å¾ç失败 |
| | | uploadEditorError(res, file) { |
| | | console.log(res); |
| | | console.log(file); |
| | | //é¡µé¢æç¤º |
| | | this.$message.error("ä¸ä¼ å¾ç失败"); |
| | | //åæ¶ä¸ä¼ å¨ç» |
| | | this.quillUpdateImg = false; |
| | | }, |
| | | //ä¸ä¼ ç»ä»¶è¿åçç»æ |
| | | uploadResult: function (res) { |
| | | this.uploadUrlPath = res; |
| | | }, |
| | | openContent: function () { |
| | | console.log(this.content); |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | font-size: 24px; |
| | | } |
| | | } |
| | | // ::v-deep.el-form-item--medium .el-form-item__content { |
| | | // line-height: 36px; |
| | | // display: flex; |
| | | // } |
| | | .editor { |
| | | line-height: normal !important; |
| | | height: 400px; |
| | | margin-bottom: 50px; |
| | | } |
| | | .ql-snow .ql-tooltip[data-mode="link"]::before { |
| | | content: "请è¾å
¥é¾æ¥å°å:"; |
| | | } |
| | | .ql-snow .ql-tooltip.ql-editing a.ql-action::after { |
| | | border-right: 0px; |
| | | content: "ä¿å"; |
| | | padding-right: 0px; |
| | | } |
| | | |
| | | .ql-snow .ql-tooltip[data-mode="video"]::before { |
| | | content: "请è¾å
¥è§é¢å°å:"; |
| | | } |
| | | |
| | | .ql-snow .ql-picker.ql-size .ql-picker-label::before, |
| | | .ql-snow .ql-picker.ql-size .ql-picker-item::before { |
| | | content: "14px"; |
| | | } |
| | | .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="small"]::before, |
| | | .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="small"]::before { |
| | | content: "10px"; |
| | | } |
| | | .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="large"]::before, |
| | | .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="large"]::before { |
| | | content: "18px"; |
| | | } |
| | | .ql-snow .ql-picker.ql-size .ql-picker-label[data-value="huge"]::before, |
| | | .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="huge"]::before { |
| | | content: "32px"; |
| | | } |
| | | |
| | | .ql-snow .ql-picker.ql-header .ql-picker-label::before, |
| | | .ql-snow .ql-picker.ql-header .ql-picker-item::before { |
| | | content: "ææ¬"; |
| | | } |
| | | .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before, |
| | | .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before { |
| | | content: "æ é¢1"; |
| | | } |
| | | .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before, |
| | | .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before { |
| | | content: "æ é¢2"; |
| | | } |
| | | .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before, |
| | | .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before { |
| | | content: "æ é¢3"; |
| | | } |
| | | .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before, |
| | | .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before { |
| | | content: "æ é¢4"; |
| | | } |
| | | .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before, |
| | | .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before { |
| | | content: "æ é¢5"; |
| | | } |
| | | .ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before, |
| | | .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before { |
| | | content: "æ é¢6"; |
| | | } |
| | | |
| | | .ql-snow .ql-picker.ql-font .ql-picker-label::before, |
| | | .ql-snow .ql-picker.ql-font .ql-picker-item::before { |
| | | content: "æ ååä½"; |
| | | } |
| | | .ql-snow .ql-picker.ql-font .ql-picker-label[data-value="serif"]::before, |
| | | .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="serif"]::before { |
| | | content: "衬线åä½"; |
| | | } |
| | | .ql-snow .ql-picker.ql-font .ql-picker-label[data-value="monospace"]::before, |
| | | .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="monospace"]::before { |
| | | content: "ç宽åä½"; |
| | | } |
| | | </style> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | import { Quill } from 'vue-quill-editor' |
| | | |
| | | // æºç 䏿¯importç´æ¥åå
¥ï¼è¿éè¦ç¨Quill.importå¼å
¥ |
| | | const BlockEmbed = Quill.import('blots/block/embed') |
| | | // const Link = Quill.import('formats/link') |
| | | |
| | | const ATTRIBUTES = ['height', 'width'] |
| | | |
| | | class Video extends BlockEmbed { |
| | | static create (value) { |
| | | const node = super.create(value) |
| | | // console.log("jsæä»¶"+ window.jsValue) |
| | | // æ·»å videoæ ç¾æéç屿§ |
| | | node.setAttribute('controls', 'controls') // æ§å¶ææ¾å¨ |
| | | //å é¤åçvideoçæ§å¶æ¡çä¸è½½æè
å
¨å±æé®çæ¹æ³ |
| | | //<video controls controlsList='nofullscreen nodownload noremote footbar' ></video> |
| | | //ä¸ç¨åªä¸ªå¨ä¸é¢å ä¸åªä¸ª |
| | | node.setAttribute('controlsList', 'nofullscreen') // æ§å¶å é¤ |
| | | node.setAttribute('type', 'video/mp4') |
| | | node.setAttribute('style', 'object-fit:fill;width: 100%;') |
| | | node.setAttribute('preload', 'auto') // auto - å½é¡µé¢å è½½åè½½å
¥æ´ä¸ªè§é¢ meta - å½é¡µé¢å è½½ååªè½½å
¥å
æ°æ® none - å½é¡µé¢å è½½åä¸è½½å
¥è§é¢ |
| | | node.setAttribute('playsinline', 'true') |
| | | node.setAttribute('x-webkit-airplay', 'allow') |
| | | // node.setAttribute('x5-video-player-type', 'h5') // å¯ç¨H5ææ¾å¨,æ¯wechatå®åçç¹æ§ |
| | | node.setAttribute('x5-video-orientation', 'portraint') // ç«å±ææ¾ 声æäºh5æè½ä½¿ç¨ ææ¾å¨æ¯ä»çæ¹åï¼landscape横å±ï¼portraintç«å±ï¼é»è®¤å¼ä¸ºç«å± |
| | | node.setAttribute('x5-playsinline', 'true') // å
¼å®¹å®å ä¸å
¨å±ææ¾ |
| | | node.setAttribute('x5-video-player-fullscreen', 'true') // å
¨å±è®¾ç½®ï¼è®¾ç½®ä¸º true æ¯é²æ¢æ¨ªå± |
| | | node.setAttribute('src', window.jsValue) |
| | | return node |
| | | } |
| | | |
| | | static formats (domNode) { |
| | | return ATTRIBUTES.reduce((formats, attribute) => { |
| | | if (domNode.hasAttribute(attribute)) { |
| | | formats[attribute] = domNode.getAttribute(attribute) |
| | | } |
| | | return formats |
| | | }, {}) |
| | | } |
| | | |
| | | // static sanitize (url) { |
| | | // |
| | | // // eslint-disable-line import/no-named-as-default-member |
| | | // } |
| | | |
| | | static value (domNode) { |
| | | return domNode.getAttribute('src') |
| | | } |
| | | |
| | | format (name, value) { |
| | | if (ATTRIBUTES.indexOf(name) > -1) { |
| | | if (value) { |
| | | this.domNode.setAttribute(name, value) |
| | | } else { |
| | | this.domNode.removeAttribute(name) |
| | | } |
| | | } else { |
| | | super.format(name, value) |
| | | } |
| | | } |
| | | |
| | | html () { |
| | | const { video } = this.value() |
| | | return `<a href="${video}">${video}</a>` |
| | | } |
| | | } |
| | | Video.blotName = 'video' // è¿éä¸ç¨æ¹ï¼æ¥¼ä¸»ä¸ç¨iframeï¼ç´æ¥æ¿æ¢æåæ¥ï¼å¦æéè¦ä¹å¯ä»¥ä¿ç忥çï¼è¿éç¨ä¸ªæ°çblot |
| | | Video.className = 'ql-video' |
| | | Video.tagName = 'video' // ç¨videoæ ç¾æ¿æ¢iframe |
| | | |
| | | export default Video |
| | |
| | | <el-tab-pane :label="`å
¨é¨ (${numberlb})`"></el-tab-pane> |
| | | <el-tab-pane |
| | | class="tab-paness" |
| | | :key="item.name" |
| | | :key="item.title" |
| | | v-for="(item, index) in editableTabs" |
| | | :label="item.title + ' (' + item.number + ')'" |
| | | ></el-tab-pane> |
| | | |
| | | <el-tab-pane :label="`æªåç»(${numberlbs})`"></el-tab-pane> |
| | | > |
| | | <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(item)" |
| | | >ä¿®æ¹</el-button |
| | | ><el-button type="text" @click="deletefenlei(item)" |
| | | ><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-tabs> |
| | | </div> |
| | | </div> |
| | |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="userList" |
| | | border="true" |
| | | border |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | |
| | | </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-dialog |
| | | :title="amendtag ? 'ä¿®æ¹ç±»å«' : 'æ°å¢ç±»å«'" |
| | | width="30%" |
| | | :visible.sync="dialogFormVisible" |
| | | > |
| | | <el-form :model="classifyform"> |
| | | <el-form-item |
| | | :label="amendtag ? '请è¾å
¥æ°çç±»å«åç§°' : '请è¾å
¥ç±»å«åç§°'" |
| | | > |
| | | <el-input |
| | | v-model="classifyform.categoryname" |
| | | 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="deletefenlei">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- äºç»´ç å±ç¤ºå¼¹æ¡ --> |
| | | <el-dialog width="30%" :visible.sync="goQRCodeVisible"> |
| | |
| | | numberlb: 22, |
| | | numberlbs: 2, |
| | | sidecolumnform: {}, //æ·»å ç±»å«è¡¨å |
| | | dialogFormVisible: false, //æ·»å ç±»å«å¼¹æ¡ |
| | | goQRCodeVisible: false, //äºç»´ç å¼¹æ¡ |
| | | sidecolumnval: "", //ç±»å«æç´¢ |
| | | propss: { multiple: true }, |
| | | idds: "", |
| | | amendtag: false, //æ¯å¦ä¿®æ¹ç±»å« |
| | | dialogFormVisible: false, //ä¿®æ¹æ·»å ç±»å«å¼¹æ¡ |
| | | deleteVisible: false, //åç±»å é¤å¼¹æ¡ |
| | | deletefenl: "é«è¡å", //å é¤é¡¹ |
| | | classifyform: { |
| | | categoryname: "", |
| | | }, //ç±»å«è¡¨å |
| | | optionss: [ |
| | | { |
| | | value: 1, |
| | |
| | | submitsidecolumn() { |
| | | this.dialogFormVisible = false; |
| | | }, |
| | | // ä¿®æ¹åç±»å¼¹æ¡ |
| | | popoveramend(tagcategoryid) { |
| | | this.idds = tagcategoryid; |
| | | this.amendtag = true; |
| | | this.dialogFormVisible = true; |
| | | }, |
| | | // æ·»å ãä¿®æ¹ç±»å« |
| | | submitsidecolumn() { |
| | | if (this.amendtag) { |
| | | this.classifyform.tagcategoryid = this.idds; |
| | | // toamendtagcategory(this.addDateRange(this.classifyform)).then( |
| | | // (response) => { |
| | | // console.log(response); |
| | | // this.gitclasify(); |
| | | // } |
| | | // ); |
| | | } else { |
| | | // addtagcategory(this.addDateRange(this.classifyform)).then( |
| | | // (response) => { |
| | | // console.log(response); |
| | | // this.gitclasify(); |
| | | // } |
| | | // ); |
| | | } |
| | | this.classifyform = { |
| | | categoryname: "", |
| | | }; |
| | | this.idds = ""; |
| | | this.dialogFormVisible = false; |
| | | }, |
| | | //å é¤åç±» |
| | | deletefenlei(row) { |
| | | if (this.deleteVisible) { |
| | | // deletetagcategory(this.idds).then((response) => { |
| | | // console.log(response); |
| | | // this.gitclasify(); |
| | | // }); |
| | | this.deleteVisible = false; |
| | | this.idds = ""; |
| | | } else { |
| | | this.deleteVisible = true; |
| | | this.idds = row.tagcategoryid; |
| | | this.deletefenl = row.title; |
| | | } |
| | | }, |
| | | //æç´¢ç±»å« |
| | | sidecolumnss() {}, |
| | | // 忢å
±äº«/æ¬å° |
| | |
| | | <!--ç¨æ·æ°æ®--> |
| | | <el-col :span="24" :xs="24"> |
| | | <el-form |
| | | :model="queryParams" |
| | | :model="topqueryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | |
| | | > |
| | | <el-form-item label="é¢ç®åç§°" prop="userName"> |
| | | <el-input |
| | | v-model="queryParams.userName" |
| | | v-model="topqueryParams.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-form-item label="é¢ç®æ ç¾" prop="status"> |
| | | <el-cascader |
| | | v-model="queryParams.status" |
| | | v-model="topqueryParams.tagid" |
| | | :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 label="é¢ç®ç±»å" prop="status"> |
| | | <el-select v-model="topqueryParams.topic" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in topicoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="medium" @click="handleQuery">æç´¢</el-button> |
| | | <el-button icon="el-icon-refresh" size="medium" @click="resetQuery">éç½®</el-button> |
| | | </el-form-item> --> |
| | | <el-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"> |
| | |
| | | <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" |
| | |
| | | align="center" |
| | | key="userId" |
| | | prop="userId" |
| | | v-if="columns[0].visible" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="å§å" |
| | | label="é¢ç®" |
| | | align="center" |
| | | key="userName" |
| | | prop="userName" |
| | | v-if="columns[1].visible" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="æ§å«" |
| | | label="é¢ç®ç±»å«" |
| | | align="center" |
| | | key="types" |
| | | prop="types" |
| | | /> |
| | | <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="è¯ä»¶ç±»å" |
| | | 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" |
| | | > |
| | | <el-table-column label="æ¯å¦å¯ç¨" align="center" key="status"> |
| | | <template slot-scope="scope"> |
| | | <el-switch |
| | | v-model="scope.row.status" |
| | |
| | | @change="handleStatusChange(scope.row)" |
| | | ></el-switch> |
| | | </template> |
| | | </el-table-column> --> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="èç³»æ¹å¼" |
| | | label="é¢ç®æ ç¾" |
| | | align="center" |
| | | key="phonenumber" |
| | | prop="phonenumber" |
| | | v-if="columns[4].visible" |
| | | key="topicnumber" |
| | | prop="topicnumber" |
| | | width="120" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="å»ºæ¡£æ¥æ" |
| | | label="åå»ºæ¥æ" |
| | | align="center" |
| | | prop="createTime" |
| | | v-if="columns[6].visible" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æ´æ°æ¥æ" |
| | | label="æè¿æ´æ°æ¥æ" |
| | | align="center" |
| | | prop="createTime" |
| | | v-if="columns[6].visible" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | |
| | | size="medium" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="$router.push('/patient/patient/profile/')" |
| | | @click="Referencequestion(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | >æ¥ç</el-button |
| | | >é¢è§</el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | >ä¿®æ¹</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | :page.sync="topqueryParams.pageNum" |
| | | :limit.sync="topqueryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <!-- æ·»å æä¿®æ¹ç¨æ·é
ç½®å¯¹è¯æ¡ --> |
| | | <el-dialog :title="title" :visible.sync="open" width="900px" append-to-body> |
| | | <!-- æ·»å æä¿®æ¹é¢ç®é
ç½®å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | :title="title" |
| | | :visible.sync="addalteropen" |
| | | 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-form-item label="é¢ç®åç§°" prop="nickName"> |
| | | <el-input |
| | | v-model="form.nickName" |
| | | placeholder="请è¾å
¥å§å" |
| | | 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-form-item label="é¢ç®ç±»å" prop="deptId"> |
| | | <el-select v-model="form.types" placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="dict in dict.type.sys_user_sex" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | v-for="item in topicoptions" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.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-form-item label="çæ¡é项" prop="email"> |
| | | <el-tag |
| | | :key="tag" |
| | | v-for="tag in dynamicTags" |
| | | closable |
| | | :disable-transitions="false" |
| | | @close="handleClose(tag)" |
| | | > |
| | | {{ tag }} |
| | | </el-tag> |
| | | <el-input |
| | | v-model="form.phonenumber" |
| | | placeholder="è¯·éæ©è¯ä»¶ç±»å" |
| | | maxlength="11" |
| | | /> |
| | | class="input-new-tag" |
| | | v-if="inputVisible" |
| | | v-model="inputValue" |
| | | ref="saveTagInput" |
| | | size="small" |
| | | @keyup.enter.native="handleInputConfirm" |
| | | @blur="handleInputConfirm" |
| | | > |
| | | </el-input> |
| | | <el-button |
| | | v-else |
| | | class="button-new-tag" |
| | | size="small" |
| | | @click="showInput" |
| | | >+ æ°å¢é项</el-button |
| | | > |
| | | </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-form-item label="é¢ç®æ ç¾" prop="email"> |
| | | <el-cascader |
| | | v-model="form.totagid" |
| | | :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-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ¯å¦å¯ç¨"> |
| | | <el-radio-group v-model="form.qystatus"> |
| | | <el-radio |
| | | v-for="dict in dict.type.sys_normal_disable" |
| | | :key="dict.value" |
| | | :label="dict.value" |
| | | >{{ dict.label }}</el-radio |
| | | v-for="item in qyoptions" |
| | | :key="item.value" |
| | | :label="item.value" |
| | | >{{ item.label }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> --> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ¯å¦å¿
å¡«"> |
| | | <el-radio-group v-model="form.btstatus"> |
| | | <el-radio |
| | | v-for="item in btoptions" |
| | | :key="item.value" |
| | | :label="item.value" |
| | | >{{ item.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-button @click="cancel">å æ¶</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <!-- ç¨æ·å¯¼å
¥å¯¹è¯æ¡ --> |
| | | <el-dialog |
| | | :title="upload.title" |
| | | :visible.sync="upload.open" |
| | | width="70%" |
| | | append-to-body |
| | | <!-- é¢ç®é¢è§å¼¹æ¡ --> |
| | | <el-dialog width="30%" title="é¢ç®é¢è§" :visible.sync="previewVisible"> |
| | | <div class="qrcode-dialo"> |
| | | <!-- åé --> |
| | | <div class="topic-dev" v-if="previewtype == 1"> |
| | | <div class="dev-text"> |
| | | [åé]  <span>{{ previewvalue.username }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-radio-group v-model="radio"> |
| | | <el-radio |
| | | v-for="(items, index) in dynamicTags" |
| | | :key="index" |
| | | :label="index" |
| | | >{{ items }}</el-radio |
| | | > |
| | | <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 |
| | | </el-radio-group> |
| | | </div> |
| | | </div> |
| | | <!-- å¤é --> |
| | | <div class="topic-dev" v-else-if="previewtype == 2"> |
| | | <div class="dev-text"> |
| | | [å¤é]  <span>{{ previewvalue.username }}</span> |
| | | </div> |
| | | <div class="dev-xx"> |
| | | <el-checkbox-group v-model="radios"> |
| | | <el-checkbox |
| | | v-for="(items, index) in dynamicTags" |
| | | :key="index" |
| | | :label="index" |
| | | > |
| | | <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" /> |
| | | æ¯å¦æ´æ°å·²ç»åå¨çç¨æ·æ°æ® |
| | | {{ items }} |
| | | </el-checkbox> |
| | | </el-checkbox-group> |
| | | </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 class="topic-dev" v-if="previewtype == 3"> |
| | | <div class="dev-text"> |
| | | [填空]  <span>{{ previewvalue.username }}</span> |
| | | </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 class="dev-xx"> |
| | | <el-input placeholder="请è¾å
¥çæ¡" v-model="radioas" clearable> |
| | | </el-input> |
| | | </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> |
| | |
| | | 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"; |
| | | |
| | |
| | | userList: null, |
| | | // å¼¹åºå±æ é¢ |
| | | title: "", |
| | | // é¨é¨æ é项 |
| | | deptOptions: undefined, |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå± |
| | | open: false, |
| | | // æ¯å¦æ¾ç¤ºä¿®æ¹ãæ·»å å¼¹åºå± |
| | | addalteropen: false, |
| | | // é¨é¨åç§° |
| | | deptName: undefined, |
| | | // é»è®¤å¯ç |
| | |
| | | postOptions: [], |
| | | // è§è²é项 |
| | | roleOptions: [], |
| | | dynamicTags: ["é项ä¸", "é项äº", "é项ä¸"], //é项 |
| | | inputVisible: false, |
| | | inputValue: "", |
| | | previewVisible: false, //é¢ç®é¢è§å¼¹æ¡ |
| | | radio: "", |
| | | radios: [], |
| | | previewtype: 2, //é¢è§é¢ç®ç±»å |
| | | total: 0, // æ»æ¡æ° |
| | | ImportQuantity: 999, //导é¢ç®æ°é |
| | | //é¢è§é¢ç®ä¿¡æ¯ |
| | | previewvalue: { |
| | | username: "è¿ä¸ªå»çå¯¹ä½ æä¹æ ·", |
| | | }, |
| | | // 表ååæ° |
| | | form: {}, |
| | | form: { |
| | | phonenumber: "", |
| | | totagid: "", |
| | | types: "", |
| | | nickName: "", |
| | | qystatus: "", |
| | | btstatus: "", |
| | | }, |
| | | //导å
¥è¿åº¦ |
| | | dractive: 1, |
| | | // 导å
¥å±ç¤ºè¡¨å |
| | | uploadingData: {}, |
| | | total: 0, // æ»æ¡æ° |
| | | ImportQuantity: 999, //导å
¥æ£è
æ°é |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | topqueryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | jobName: undefined, |
| | | jobGroup: undefined, |
| | | status: undefined, |
| | | userName: undefined, |
| | | tagid: undefined, |
| | | topic: undefined, |
| | | }, |
| | | propss: { multiple: true }, |
| | | optionss: [ |
| | |
| | | label: "å
é£é£é£", |
| | | }, |
| | | ], |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "label", |
| | | qyoptions: [ |
| | | { |
| | | value: 1, |
| | | label: "å¯ç¨", |
| | | }, |
| | | // ç¨æ·å¯¼å
¥åæ° |
| | | upload: { |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå±ï¼ç¨æ·å¯¼å
¥ï¼ |
| | | open: false, |
| | | // å¼¹åºå±æ é¢ï¼ç¨æ·å¯¼å
¥ï¼ |
| | | title: "", |
| | | // æ¯å¦ç¦ç¨ä¸ä¼ |
| | | isUploading: false, |
| | | // æ¯å¦æ´æ°å·²ç»åå¨çç¨æ·æ°æ® |
| | | updateSupport: 0, |
| | | // 设置ä¸ä¼ ç请æ±å¤´é¨ |
| | | headers: { Authorization: "Bearer " + getToken() }, |
| | | // ä¸ä¼ çå°å |
| | | url: process.env.VUE_APP_BASE_API + "/system/user/importData", |
| | | { |
| | | value: 2, |
| | | label: "å
³é", |
| | | }, |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | userName: undefined, |
| | | phonenumber: undefined, |
| | | status: undefined, |
| | | deptId: undefined, |
| | | IDnumber: undefined, |
| | | ], |
| | | btoptions: [ |
| | | { |
| | | value: 1, |
| | | label: "å¿
å¡«", |
| | | }, |
| | | // åä¿¡æ¯ |
| | | 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 }, |
| | | { |
| | | value: 2, |
| | | label: "éå¿
å¡«", |
| | | }, |
| | | ], |
| | | topicoptions: [ |
| | | { |
| | | value: 1, |
| | | label: "åé", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "å¤é", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "填空", |
| | | }, |
| | | ], |
| | | // è¡¨åæ ¡éª |
| | | rules: { |
| | |
| | | }, |
| | | }; |
| | | }, |
| | | watch: { |
| | | // æ ¹æ®åç§°çéé¨é¨æ |
| | | deptName(val) { |
| | | this.$refs.tree.filter(val); |
| | | }, |
| | | }, |
| | | watch: {}, |
| | | 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( |
| | | listUser(this.addDateRange(this.topqueryParams, this.dateRange)).then( |
| | | (response) => { |
| | | this.userList = response.rows; |
| | | this.total = response.total; |
| | |
| | | } |
| | | ); |
| | | }, |
| | | // æ¥è¯¢å¯¼å
¥å±ç¤ºå表 |
| | | geterryList() { |
| | | this.loading = true; |
| | | listJob(this.queryParams).then((response) => { |
| | | this.jobList = 1; |
| | | this.total = 1; |
| | | this.loading = false; |
| | | }); |
| | | // æ¥çé¢ç®è¯¦æ
|
| | | Referencequestion(row) { |
| | | this.previewVisible = true; |
| | | }, |
| | | /** æ¥è¯¢é¨é¨ä¸ææ ç»æ */ |
| | | 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 |
| | |
| | | }, |
| | | // åæ¶æé® |
| | | cancel() { |
| | | this.open = false; |
| | | this.addalteropen = false; |
| | | this.reset(); |
| | | }, |
| | | // 表åéç½® |
| | |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.topqueryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** éç½®æé®æä½ */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.resetForm("queryForm"); |
| | | this.queryParams.deptId = undefined; |
| | | this.topqueryParams.deptId = undefined; |
| | | this.$refs.tree.setCurrentKey(null); |
| | | this.handleQuery(); |
| | | }, |
| | |
| | | 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; |
| | | //å é¤é项 |
| | | handleClose(tag) { |
| | | this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1); |
| | | }, |
| | | //è§¦åæ°å¢è¾å
¥ |
| | | showInput() { |
| | | this.inputVisible = true; |
| | | this.$nextTick((_) => { |
| | | this.$refs.saveTagInput.$refs.input.focus(); |
| | | }); |
| | | }, |
| | | //è·å失å»ç¦ç¹è§¦å |
| | | handleInputConfirm() { |
| | | let inputValue = this.inputValue; |
| | | if (inputValue) { |
| | | this.dynamicTags.push(inputValue); |
| | | } |
| | | this.inputVisible = false; |
| | | this.inputValue = ""; |
| | | }, |
| | | /** æ°å¢æé®æä½ */ |
| | | handleAdd() { |
| | |
| | | getUser().then((response) => { |
| | | this.postOptions = response.posts; |
| | | this.roleOptions = response.roles; |
| | | this.open = true; |
| | | this.title = "æ°å¢æ£è
"; |
| | | this.addalteropen = true; |
| | | this.title = "æ°å¢é¢ç®"; |
| | | this.form.password = this.initPassword; |
| | | }); |
| | | }, |
| | |
| | | this.roleOptions = response.roles; |
| | | this.$set(this.form, "postIds", response.postIds); |
| | | this.$set(this.form, "roleIds", response.roleIds); |
| | | this.open = true; |
| | | this.addalteropen = true; |
| | | this.title = "ä¿®æ¹ç¨æ·"; |
| | | this.form.password = ""; |
| | | }); |
| | |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | /** åé
è§è²æä½ */ |
| | | handleAuthRole: function (row) { |
| | | const userId = row.userId; |
| | | this.$router.push("/system/user-auth/role/" + userId); |
| | | }, |
| | | |
| | | /** æäº¤æé® */ |
| | | submitForm: function () { |
| | | this.$refs["form"].validate((valid) => { |
| | |
| | | this.download( |
| | | "system/user/export", |
| | | { |
| | | ...this.queryParams, |
| | | ...this.topqueryParams, |
| | | }, |
| | | `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; |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | } |
| | | .el-tag + .el-tag { |
| | | margin-left: 10px; |
| | | } |
| | | .button-new-tag { |
| | | margin-left: 10px; |
| | | height: 32px; |
| | | line-height: 30px; |
| | | padding-top: 0; |
| | | padding-bottom: 0; |
| | | } |
| | | .input-new-tag { |
| | | width: 90px; |
| | | margin-left: 10px; |
| | | vertical-align: bottom; |
| | | } |
| | | .drexamine { |
| | | display: flex; |
| | | align-items: center; |
| | |
| | | height: 100px; |
| | | } |
| | | } |
| | | .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); |
| | | .topic-dev { |
| | | margin-bottom: 25px; |
| | | font-size: 20px !important; |
| | | .dev-text { |
| | | margin-bottom: 10px; |
| | | } |
| | | } |
| | | } |
| | | ::v-deep.el-radio-group { |
| | | span { |
| | | font-size: 24px; |
| | | } |
| | | } |
| | | ::v-deep.el-checkbox-group { |
| | | span { |
| | | font-size: 24px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | ], |
| | | desc: [{ required: true, message: "è¯·å¡«åæ´»å¨å½¢å¼", trigger: "blur" }], |
| | | }, |
| | | options: [ |
| | | { |
| | | value: "é项1", |
| | | label: "é»éç³", |
| | | }, |
| | | { |
| | | value: "é项2", |
| | | label: "åç®å¥¶", |
| | | }, |
| | | { |
| | | value: "é项3", |
| | | label: "èµä»ç
", |
| | | }, |
| | | { |
| | | value: "é项4", |
| | | label: "é¾é¡»é¢", |
| | | }, |
| | | { |
| | | value: "é项5", |
| | | label: "å京ç¤é¸", |
| | | }, |
| | | ], |
| | | // options: [ |
| | | // { |
| | | // value: "é项1", |
| | | // label: "é»éç³", |
| | | // }, |
| | | // { |
| | | // value: "é项2", |
| | | // label: "åç®å¥¶", |
| | | // }, |
| | | // { |
| | | // value: "é项3", |
| | | // label: "èµä»ç
", |
| | | // }, |
| | | // { |
| | | // value: "é项4", |
| | | // label: "é¾é¡»é¢", |
| | | // }, |
| | | // { |
| | | // value: "é项5", |
| | | // label: "å京ç¤é¸", |
| | | // }, |
| | | // ], |
| | | options: [ |
| | | { |
| | | value: "zhinan", |
| | |
| | | sdadd: ["sss", "ssccss", "ssaas", "ss"], |
| | | }, |
| | | ], |
| | | options: [ |
| | | { |
| | | value: "é项1", |
| | | label: "åé", |
| | | }, |
| | | { |
| | | value: "é项2", |
| | | label: "å¤é", |
| | | disabled: true, |
| | | }, |
| | | { |
| | | value: "é项3", |
| | | label: "填空", |
| | | }, |
| | | ], |
| | | // options: [ |
| | | // { |
| | | // value: "é项1", |
| | | // label: "åé", |
| | | // }, |
| | | // { |
| | | // value: "é项2", |
| | | // label: "å¤é", |
| | | // disabled: true, |
| | | // }, |
| | | // { |
| | | // value: "é项3", |
| | | // label: "填空", |
| | | // }, |
| | | // ], |
| | | addvalue: "æ·»å é¢ç®", |
| | | // é¢ç®è¡¨æ ¼æ°æ® |
| | | userList: [ |
| | |
| | | <el-tab-pane :label="`å
¨é¨ (${numberlb})`"></el-tab-pane> |
| | | <el-tab-pane |
| | | class="tab-paness" |
| | | :key="item.name" |
| | | :key="item.title" |
| | | v-for="(item, index) in editableTabs" |
| | | :label="item.title + ' (' + item.number + ')'" |
| | | ></el-tab-pane> |
| | | |
| | | <el-tab-pane :label="`æªåç»(${numberlbs})`"></el-tab-pane> |
| | | > |
| | | <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(item)" |
| | | >ä¿®æ¹</el-button |
| | | ><el-button type="text" @click="deletefenlei(item)" |
| | | ><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-tabs> |
| | | </div> |
| | | </div> |
| | |
| | | </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-dialog |
| | | :title="amendtag ? 'ä¿®æ¹ç±»å«' : 'æ°å¢ç±»å«'" |
| | | width="30%" |
| | | :visible.sync="dialogFormVisible" |
| | | > |
| | | <el-form :model="classifyform"> |
| | | <el-form-item |
| | | :label="amendtag ? '请è¾å
¥æ°çç±»å«åç§°' : '请è¾å
¥ç±»å«åç§°'" |
| | | > |
| | | <el-input |
| | | v-model="classifyform.categoryname" |
| | | 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="deletefenlei">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- äºç»´ç å±ç¤ºå¼¹æ¡ --> |
| | | <el-dialog width="30%" :visible.sync="goQRCodeVisible"> |
| | |
| | | numberlb: 22, |
| | | numberlbs: 2, |
| | | sidecolumnform: {}, //æ·»å ç±»å«è¡¨å |
| | | dialogFormVisible: false, //æ·»å ç±»å«å¼¹æ¡ |
| | | goQRCodeVisible: false, //äºç»´ç å¼¹æ¡ |
| | | sidecolumnval: "", //ç±»å«æç´¢ |
| | | propss: { multiple: true }, |
| | | idds: "", |
| | | amendtag: false, //æ¯å¦ä¿®æ¹ç±»å« |
| | | dialogFormVisible: false, //ä¿®æ¹æ·»å ç±»å«å¼¹æ¡ |
| | | deleteVisible: false, //åç±»å é¤å¼¹æ¡ |
| | | deletefenl: "é«è¡å", //å é¤é¡¹ |
| | | classifyform: { |
| | | categoryname: "", |
| | | }, //ç±»å«è¡¨å |
| | | optionss: [ |
| | | { |
| | | value: 1, |
| | |
| | | // console.log(rows); |
| | | // this.list = rows; |
| | | }, |
| | | // æ·»å ç±»å« |
| | | // æ·»å ãä¿®æ¹ç±»å« |
| | | submitsidecolumn() { |
| | | if (this.amendtag) { |
| | | this.classifyform.tagcategoryid = this.idds; |
| | | // toamendtagcategory(this.addDateRange(this.classifyform)).then( |
| | | // (response) => { |
| | | // console.log(response); |
| | | // this.gitclasify(); |
| | | // } |
| | | // ); |
| | | } else { |
| | | // addtagcategory(this.addDateRange(this.classifyform)).then( |
| | | // (response) => { |
| | | // console.log(response); |
| | | // this.gitclasify(); |
| | | // } |
| | | // ); |
| | | } |
| | | this.classifyform = { |
| | | categoryname: "", |
| | | }; |
| | | this.idds = ""; |
| | | this.dialogFormVisible = false; |
| | | }, |
| | | //å é¤åç±» |
| | | deletefenlei(row) { |
| | | if (this.deleteVisible) { |
| | | // deletetagcategory(this.idds).then((response) => { |
| | | // console.log(response); |
| | | // this.gitclasify(); |
| | | // }); |
| | | this.deleteVisible = false; |
| | | this.idds = ""; |
| | | } else { |
| | | this.deleteVisible = true; |
| | | this.idds = row.tagcategoryid; |
| | | this.deletefenl = row.title; |
| | | } |
| | | }, |
| | | //æç´¢ç±»å« |
| | | sidecolumnss() {}, |
| | | // 忢å
±äº«/æ¬å° |
| | |
| | | <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 |
| | |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="å§å" prop="userName"> |
| | | <el-form-item label="å§å" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.userName" |
| | | v-model="queryParams.name" |
| | | placeholder="请è¾å
¥å§å" |
| | | clearable |
| | | style="width: 200px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="身份è¯å·ç " prop="IDnumber"> |
| | | <el-form-item label="身份è¯å·ç " prop="iccardno"> |
| | | <el-input |
| | | v-model="queryParams.IDnumber" |
| | | v-model="queryParams.iccardno" |
| | | placeholder="请è¾å
¥èº«ä»½è¯å·ç " |
| | | clearable |
| | | style="width: 250px" |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="èç³»æ¹å¼" prop="phonenumber"> |
| | | <el-form-item label="èç³»æ¹å¼" prop="telcode"> |
| | | <el-input |
| | | v-model="queryParams.phonenumber" |
| | | v-model="queryParams.telcode" |
| | | placeholder="请è¾å
¥èç³»æ¹å¼" |
| | | clearable |
| | | style="width: 280px" |
| | |
| | | /> |
| | | </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 label="æ£è
æ ç¾" prop="tagId"> |
| | | <el-select |
| | | v-model="queryParams.tagIds" |
| | | multiple |
| | | placeholder="è¯·éæ©" |
| | | > |
| | | <el-option |
| | | v-for="item in optionstag" |
| | | :key="item.tagid" |
| | | :label="item.tagname" |
| | | :value="item.tagid" |
| | | > |
| | | </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-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-row> |
| | | </el-form> |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | |
| | | </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" |
| | |
| | | <el-table-column |
| | | label="åºå·" |
| | | align="center" |
| | | key="userId" |
| | | prop="userId" |
| | | key="patid" |
| | | prop="patid" |
| | | /> |
| | | <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="name" prop="name" /> |
| | | <el-table-column label="æ§å«" align="center" key="sex" prop="sex"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.sex == 1 ? "ç·" : "女" }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="æ£è
æ ç¾" |
| | | align="center" |
| | | key="deptName" |
| | | prop="dept.deptName" |
| | | key="tagList" |
| | | prop="tagList" |
| | | width="160" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span v-for="item in scope.row.tagList">{{ item }} </span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="è¯ä»¶ç±»å" |
| | | align="center" |
| | | key="phonenumber" |
| | | prop="phonenumber" |
| | | key="iccardtype" |
| | | prop="iccardtype" |
| | | width="120" |
| | | /><el-table-column |
| | | label="è¯ä»¶å·ç " |
| | | align="center" |
| | | key="phonenumber" |
| | | prop="phonenumber" |
| | | width="120" |
| | | key="iccardno" |
| | | prop="iccardno" |
| | | width="190" |
| | | /> |
| | | <el-table-column |
| | | label="å¹´é¾" |
| | | align="center" |
| | | key="phonenumber" |
| | | prop="phonenumber" |
| | | v-if="columns[4].visible" |
| | | key="age" |
| | | prop="age" |
| | | width="120" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="èç³»æ¹å¼" |
| | | align="center" |
| | | key="phonenumber" |
| | | prop="phonenumber" |
| | | v-if="columns[4].visible" |
| | | key="telcode" |
| | | prop="telcode" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | label="å»ºæ¡£æ¥æ" |
| | | align="center" |
| | | prop="createTime" |
| | | v-if="columns[6].visible" |
| | | key="archivetime" |
| | | prop="archivetime" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | |
| | | <el-table-column |
| | | label="æ´æ°æ¥æ" |
| | | align="center" |
| | | prop="createTime" |
| | | v-if="columns[6].visible" |
| | | prop="updateTime" |
| | | width="160" |
| | | > |
| | | <template slot-scope="scope"> |
| | |
| | | width="160" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope" v-if="scope.row.userId !== 1"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | icon="el-icon-edit" |
| | | @click="$router.push('/patient/patient/profile/')" |
| | | @click=" |
| | | $router.push({ |
| | | path: '/patient/patient/profile/', |
| | | query: { id: scope.row.patid }, |
| | | }) |
| | | " |
| | | v-hasPermi="['system:user:edit']" |
| | | >æ¥ç</el-button |
| | | ><span class="button-textsc" |
| | | ><i class="el-icon-zoom-in"></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 |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | |
| | | </el-row> |
| | | |
| | | <!-- æ·»å æä¿®æ¹ç¨æ·é
ç½®å¯¹è¯æ¡ --> |
| | | <el-dialog :title="title" :visible.sync="open" width="900px" append-to-body> |
| | | <el-dialog |
| | | :title="amendtag ? 'ä¿®æ¹æ£è
ä¿¡æ¯' : 'æ°å¢æ£è
'" |
| | | :visible.sync="Labelchange" |
| | | width="900px" |
| | | > |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="100px"> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å§å" prop="nickName"> |
| | | <el-form-item label="å§å" prop="name"> |
| | | <el-input |
| | | v-model="form.nickName" |
| | | v-model="form.name" |
| | | placeholder="请è¾å
¥å§å" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ§å«" prop="deptId"> |
| | | <el-form-item label="æ§å«" prop="sex"> |
| | | <el-select v-model="form.sex" placeholder="è¯·éæ©æ§å«"> |
| | | <el-option |
| | | v-for="dict in dict.type.sys_user_sex" |
| | |
| | | </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 label="è¯ä»¶ç±»å" prop="iccardtype"> |
| | | <el-select v-model="form.iccardtype" placeholder="è¯·éæ©æ§å«"> |
| | | <el-option |
| | | v-for="item in paperstypes" |
| | | :key="item.papersname" |
| | | :label="item.papersname" |
| | | :value="item.papersname" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è¯ä»¶å·" prop="email"> |
| | | <el-form-item label="è¯ä»¶å·" prop="iccardno"> |
| | | <el-input |
| | | v-model="form.email" |
| | | v-model="form.iccardno" |
| | | placeholder="请è¾å
¥è¯ä»¶å·" |
| | | maxlength="50" |
| | | /> |
| | |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="æ¬äººææºå·" prop="userName"> |
| | | <el-form-item label="æ¬äººææºå·" prop="telcode"> |
| | | <el-input |
| | | v-model="form.userName" |
| | | v-model="form.telcode" |
| | | placeholder="请è¾å
¥ææºå·" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="äº²å±ææºå·" prop="password"> |
| | | <el-form-item label="äº²å±ææºå·" prop="relativetelcode"> |
| | | <el-input |
| | | v-model="form.password" |
| | | v-model="form.relativetelcode" |
| | | placeholder="请è¾å
¥äº²å±ææºå·" |
| | | type="password" |
| | | maxlength="20" |
| | |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å¹´é¾" prop="age"> |
| | | <el-input |
| | | v-model="form.age" |
| | | placeholder="请è¾å
¥å¹´é¾" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <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 v-model="form.tagList" multiple placeholder="è¯·éæ©"> |
| | | <el-option |
| | | v-for="item in optionstag" |
| | | :key="item.tagid" |
| | | :label="item.tagname" |
| | | :value="item.tagid" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | <!-- </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="夿³¨"> |
| | |
| | | |
| | | <script> |
| | | import { |
| | | listUser, |
| | | getUser, |
| | | delUser, |
| | | addUser, |
| | | updateUser, |
| | |
| | | changeUserStatus, |
| | | deptTreeSelect, |
| | | } from "@/api/system/user"; |
| | | import { listpatient } from "@/api/patient/homepage"; |
| | | import { |
| | | listpatient, |
| | | messagelistpatient, |
| | | alterpatient, |
| | | addpatient, |
| | | deletepatient, |
| | | Exporterrorpatient, |
| | | } from "@/api/patient/homepage"; |
| | | import { listtag } from "@/api/system/label"; |
| | | |
| | | import { getToken } from "@/utils/auth"; |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | |
| | | deptName: undefined, |
| | | // é»è®¤å¯ç |
| | | initPassword: undefined, |
| | | amendtag: false, //æ¯å¦ä¿®æ¹ |
| | | // æ¥æèå´ |
| | | dateRange: [], |
| | | // å²ä½é项 |
| | | postOptions: [], |
| | | // è§è²é项 |
| | | roleOptions: [], |
| | | paperstypes: [ |
| | | { papersname: "身份è¯" }, |
| | | { papersname: "æ¤ç
§" }, |
| | | { papersname: "ä¸å½æ¸¯æ¾³å±
æ°èº«ä»½è¯" }, |
| | | { papersname: "ä¸å½å°æ¹¾å±
æ°èº«ä»½è¯" }, |
| | | ], |
| | | // 表ååæ° |
| | | form: {}, |
| | | form: { |
| | | name: "", |
| | | age: "", |
| | | sex: "", |
| | | tagList: [], |
| | | iccardno: "", |
| | | telcode: "", |
| | | iccardtype: "", |
| | | relativetelcode: "", |
| | | }, |
| | | //导å
¥è¿åº¦ |
| | | dractive: 1, |
| | | // 导å
¥å±ç¤ºè¡¨å |
| | | uploadingData: {}, |
| | | total: 0, // æ»æ¡æ° |
| | | ImportQuantity: 999, //导å
¥æ£è
æ°é |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | jobName: undefined, |
| | | jobGroup: undefined, |
| | | status: undefined, |
| | | }, |
| | | Labelchange: false, //ä¿®æ¹æ°å¢å¼¹çª |
| | | propss: { multiple: true }, |
| | | optionss: [ |
| | | { |
| | | value: 1, |
| | | label: "ä¸å", |
| | | }, |
| | | { |
| | | value: 2, |
| | | label: "西å", |
| | | }, |
| | | { |
| | | value: 3, |
| | | label: "仨仨仨", |
| | | }, |
| | | { |
| | | value: 4, |
| | | label: "å
é£é£é£", |
| | | }, |
| | | ], |
| | | optionstag: [], //æ ç¾å表 |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "label", |
| | |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | name: "ç大", |
| | | pageSize: 10, |
| | | userName: undefined, |
| | | phonenumber: undefined, |
| | | iccardno: undefined, |
| | | name: undefined, |
| | | status: undefined, |
| | | deptId: undefined, |
| | | IDnumber: undefined, |
| | | tagIds: undefined, |
| | | telcode: 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", |
| | | }, |
| | | ], |
| | | // 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", |
| | | // }, |
| | | // ], |
| | | }, |
| | | }; |
| | | }, |
| | |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | this.gettabList(); |
| | | this.getDeptTree(); |
| | | this.getConfigKey("sys.user.initPassword").then((response) => { |
| | | this.initPassword = response.msg; |
| | |
| | | /** æ¥è¯¢æ£è
å表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listUser(this.queryParams).then((response) => { |
| | | messagelistpatient(this.queryParams).then((response) => { |
| | | console.log(response); |
| | | this.userList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | /** æ¥è¯¢æ ç¾å表 */ |
| | | gettabList() { |
| | | const queryParams = {}; |
| | | listtag(this.addDateRange(queryParams)).then((response) => { |
| | | console.log(response); |
| | | this.optionstag = response.rows; |
| | | }); |
| | | }, |
| | | // æ¥è¯¢å¯¼å
¥å±ç¤ºå表 |
| | |
| | | // 表åéç½® |
| | | 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: [], |
| | | name: "", |
| | | age: "", |
| | | sex: "", |
| | | tagList: [], |
| | | iccardno: "", |
| | | telcode: "", |
| | | iccardtype: "", |
| | | relativetelcode: "", |
| | | }; |
| | | this.resetForm("form"); |
| | | // this.resetForm("form"); |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | | handleQuery() { |
| | |
| | | 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.ids = selection.map((item) => item.patid); |
| | | 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; |
| | | }); |
| | | this.Labelchange = true; |
| | | }, |
| | | /** ä¿®æ¹æé®æä½ */ |
| | | handleUpdate(row) { |
| | | this.amendtag = true; |
| | | this.Labelchange = true; |
| | | }, |
| | | //ä¿®æ¹/æ°å¢æ£è
|
| | | updatevaluedate() { |
| | | if (this.amendtag) { |
| | | this.form.tagcategoryid = this.idds; |
| | | // toamendtagcategory(this.addDateRange(this.classifyform)).then( |
| | | // (response) => { |
| | | // console.log(response); |
| | | // this.gitclasify(); |
| | | // } |
| | | // ); |
| | | } else { |
| | | // addtagcategory(this.addDateRange(this.classifyform)).then( |
| | | // (response) => { |
| | | // console.log(response); |
| | | // this.gitclasify(); |
| | | // } |
| | | // ); |
| | | } |
| | | 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 = ""; |
| | | }); |
| | | // this.idds = ""; |
| | | this.Labelchange = false; |
| | | }, |
| | | /** éç½®å¯ç æé®æä½ */ |
| | | handleResetPwd(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; |
| | |
| | | height: 100px; |
| | | } |
| | | } |
| | | .button-textsc { |
| | | color: #28cfe6; |
| | | } |
| | | </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.title" |
| | | 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(item)" |
| | | >ä¿®æ¹</el-button |
| | | ><el-button type="text" @click="deletefenlei(item)" |
| | | ><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-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 |
| | | :title="amendtag ? 'ä¿®æ¹ç±»å«' : 'æ°å¢ç±»å«'" |
| | | width="30%" |
| | | :visible.sync="dialogFormVisible" |
| | | > |
| | | <el-form :model="classifyform"> |
| | | <el-form-item |
| | | :label="amendtag ? '请è¾å
¥æ°çç±»å«åç§°' : '请è¾å
¥ç±»å«åç§°'" |
| | | > |
| | | <el-input |
| | | v-model="classifyform.categoryname" |
| | | 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="deletefenlei">ç¡® å®</el-button> |
| | | </span> |
| | | </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: "", |
| | | idds: "", |
| | | amendtag: false, //æ¯å¦ä¿®æ¹ç±»å« |
| | | dialogFormVisible: false, //ä¿®æ¹æ·»å ç±»å«å¼¹æ¡ |
| | | deleteVisible: false, //åç±»å é¤å¼¹æ¡ |
| | | deletefenl: "é«è¡å", //å é¤é¡¹ |
| | | classifyform: { |
| | | categoryname: "", |
| | | }, //ç±»å«è¡¨å |
| | | // è¡¨æ ¼æ°æ® |
| | | 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); |
| | | console.log(this.userList); |
| | | }); |
| | | }, |
| | | // æ·»å ãä¿®æ¹ç±»å« |
| | | submitsidecolumn() { |
| | | if (this.amendtag) { |
| | | this.classifyform.tagcategoryid = this.idds; |
| | | // toamendtagcategory(this.addDateRange(this.classifyform)).then( |
| | | // (response) => { |
| | | // console.log(response); |
| | | // this.gitclasify(); |
| | | // } |
| | | // ); |
| | | } else { |
| | | // addtagcategory(this.addDateRange(this.classifyform)).then( |
| | | // (response) => { |
| | | // console.log(response); |
| | | // this.gitclasify(); |
| | | // } |
| | | // ); |
| | | } |
| | | this.classifyform = { |
| | | categoryname: "", |
| | | }; |
| | | this.idds = ""; |
| | | this.dialogFormVisible = false; |
| | | }, |
| | | //å é¤åç±» |
| | | deletefenlei(row) { |
| | | if (this.deleteVisible) { |
| | | // deletetagcategory(this.idds).then((response) => { |
| | | // console.log(response); |
| | | // this.gitclasify(); |
| | | // }); |
| | | this.deleteVisible = false; |
| | | this.idds = ""; |
| | | } else { |
| | | this.deleteVisible = true; |
| | | this.idds = row.tagcategoryid; |
| | | this.deletefenl = row.title; |
| | | } |
| | | }, |
| | | //æç´¢ç±»å« |
| | | 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" }, |
| | | }); |
| | | }, |
| | | // ä¿®æ¹åç±»å¼¹æ¡ |
| | | popoveramend(tagcategoryid) { |
| | | this.idds = tagcategoryid; |
| | | this.amendtag = true; |
| | | this.dialogFormVisible = true; |
| | | }, |
| | | |
| | | /** æ´æ°/ä¿®æ¹æäº¤æé® */ |
| | | 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> |
¶Ô±ÈÐÂÎļþ |
| | |
| | | <template> |
| | | <div>é访模ç</div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return {}; |
| | | }, |
| | | |
| | | created() {}, |
| | | |
| | | methods: {}, |
| | | }; |
| | | </script> |
| | | |
| | | <style lang="scss" scoped></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.title" |
| | | 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(item)" |
| | | >ä¿®æ¹</el-button |
| | | ><el-button type="text" @click="deletefenlei(item)" |
| | | ><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-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 |
| | | :title="amendtag ? 'ä¿®æ¹ç±»å«' : 'æ°å¢ç±»å«'" |
| | | width="30%" |
| | | :visible.sync="dialogFormVisible" |
| | | > |
| | | <el-form :model="classifyform"> |
| | | <el-form-item |
| | | :label="amendtag ? '请è¾å
¥æ°çç±»å«åç§°' : '请è¾å
¥ç±»å«åç§°'" |
| | | > |
| | | <el-input |
| | | v-model="classifyform.categoryname" |
| | | 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="deletefenlei">ç¡® å®</el-button> |
| | | </span> |
| | | </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: "", |
| | | idds: "", |
| | | amendtag: false, //æ¯å¦ä¿®æ¹ç±»å« |
| | | dialogFormVisible: false, //ä¿®æ¹æ·»å ç±»å«å¼¹æ¡ |
| | | deleteVisible: false, //åç±»å é¤å¼¹æ¡ |
| | | deletefenl: "é«è¡å", //å é¤é¡¹ |
| | | classifyform: { |
| | | categoryname: "", |
| | | }, //ç±»å«è¡¨å |
| | | // è¡¨æ ¼æ°æ® |
| | | 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); |
| | | console.log(this.userList); |
| | | }); |
| | | }, |
| | | // æ·»å ãä¿®æ¹ç±»å« |
| | | submitsidecolumn() { |
| | | if (this.amendtag) { |
| | | this.classifyform.tagcategoryid = this.idds; |
| | | // toamendtagcategory(this.addDateRange(this.classifyform)).then( |
| | | // (response) => { |
| | | // console.log(response); |
| | | // this.gitclasify(); |
| | | // } |
| | | // ); |
| | | } else { |
| | | // addtagcategory(this.addDateRange(this.classifyform)).then( |
| | | // (response) => { |
| | | // console.log(response); |
| | | // this.gitclasify(); |
| | | // } |
| | | // ); |
| | | } |
| | | this.classifyform = { |
| | | categoryname: "", |
| | | }; |
| | | this.idds = ""; |
| | | this.dialogFormVisible = false; |
| | | }, |
| | | //å é¤åç±» |
| | | deletefenlei(row) { |
| | | if (this.deleteVisible) { |
| | | // deletetagcategory(this.idds).then((response) => { |
| | | // console.log(response); |
| | | // this.gitclasify(); |
| | | // }); |
| | | this.deleteVisible = false; |
| | | this.idds = ""; |
| | | } else { |
| | | this.deleteVisible = true; |
| | | this.idds = row.tagcategoryid; |
| | | this.deletefenl = row.title; |
| | | } |
| | | }, |
| | | //æç´¢ç±»å« |
| | | 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" }, |
| | | }); |
| | | }, |
| | | // ä¿®æ¹åç±»å¼¹æ¡ |
| | | popoveramend(tagcategoryid) { |
| | | this.idds = tagcategoryid; |
| | | this.amendtag = true; |
| | | this.dialogFormVisible = true; |
| | | }, |
| | | |
| | | /** æ´æ°/ä¿®æ¹æäº¤æé® */ |
| | | 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> |
| | |
| | | size="medium " |
| | | > |
| | | <el-button |
| | | @click="sidecolumnss" |
| | | @click="gitclasify" |
| | | slot="append" |
| | | icon="el-icon-search" |
| | | ></el-button> |
| | |
| | | </div> |
| | | <div class="bottom-fl"> |
| | | <el-tabs tab-position="right"> |
| | | <el-tab-pane :label="`å
¨é¨ (${numberlb})`"></el-tab-pane> |
| | | <el-tab-pane :label="`å
¨é¨ (${total})`"></el-tab-pane> |
| | | <el-tab-pane |
| | | class="tab-paness" |
| | | :key="item.name" |
| | |
| | | > |
| | | <span slot="label"> |
| | | {{ |
| | | item.title + " (" + item.number + ")" |
| | | item.categoryname + " (" + item.tagNum + ")" |
| | | }}   <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" |
| | | <el-button |
| | | type="text" |
| | | @click="popoveramend(item.tagcategoryid)" |
| | | >ä¿®æ¹</el-button |
| | | ><el-button type="text" @click="deletefenlei(item)" |
| | | ><span style="color: rgb(173, 55, 55)" |
| | | >å é¤</span |
| | | ></el-button |
| | |
| | | <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-top"></div> |
| | | <div class="leftvlue-bg"> |
| | | <el-row :gutter="20"> |
| | | <!--ç¨æ·æ°æ®--> |
| | | <!--æ ç¾æ°æ®--> |
| | | <el-col :span="24" :xs="24"> |
| | | <el-form |
| | | :model="queryParams" |
| | |
| | | > |
| | | <el-form-item label="æ ç¾åç§°" prop="userName"> |
| | | <el-input |
| | | v-model="queryParams.userName" |
| | | v-model="queryParams.tagname" |
| | | placeholder="请è¾å
¥" |
| | | clearable |
| | | style="width: 200px" |
| | |
| | | plain |
| | | icon="el-icon-plus" |
| | | size="medium" |
| | | @click="lstamendtagVisible = true" |
| | | @click="addladeltag" |
| | | v-hasPermi="['system:user:add']" |
| | | >æ°å¢</el-button |
| | | > |
| | |
| | | v-hasPermi="['system:user:remove']" |
| | | >å é¤</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <div class="documentf"> |
| | | <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-table-column |
| | | label="åºå·" |
| | | align="center" |
| | | key="userId" |
| | | prop="userId" |
| | | key="tagid" |
| | | prop="tagid" |
| | | /> |
| | | <el-table-column |
| | | label="æ ç¾åç§°" |
| | | align="center" |
| | | key="userName" |
| | | prop="userName" |
| | | key="tagname" |
| | | prop="tagname" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="æè¿ç¼è¾" |
| | | align="center" |
| | | key="nickName" |
| | | prop="nickName" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | key="updateTime" |
| | | prop="updateTime" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span |
| | | >{{ scope.row.updateBy }} |
| | | <p>{{ scope.row.updateTime }}</p></span |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="æ ç¾æè¿°" |
| | | align="center" |
| | | key="aphonenumber" |
| | | prop="aphonenumber" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="120" |
| | | /> |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="ç¶æ" |
| | | align="center" |
| | | key="aphonenumbers" |
| | | prop="aphonenumbers" |
| | | key="isupload" |
| | | prop="isupload" |
| | | width="120" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-switch |
| | | v-model="scope.row.delivery" |
| | | v-model="scope.row.isupload" |
| | | :active-value="1" |
| | | :inactive-value="0" |
| | | active-color="#13ce66" |
| | | @change="handleStatusChange(scope.row)" |
| | | ></el-switch> |
| | | </template> |
| | |
| | | width="30%" |
| | | :visible.sync="dialogFormVisible" |
| | | > |
| | | <el-form :model="sidecolumnform"> |
| | | <el-form :model="classifyform"> |
| | | <el-form-item |
| | | :label="amendtag ? '请è¾å
¥æ°çç±»å«åç§°' : '请è¾å
¥ç±»å«åç§°'" |
| | | > |
| | | <el-input |
| | | v-model="sidecolumnform.classesname" |
| | | v-model="classifyform.categoryname" |
| | | autocomplete="off" |
| | | ></el-input> |
| | | </el-form-item> |
| | |
| | | </div> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="deleteVisible = false">å æ¶</el-button> |
| | | <el-button type="primary" @click="deleteVisible = false" |
| | | >ç¡® å®</el-button |
| | | > |
| | | <el-button type="primary" @click="deletefenlei">ç¡® å®</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <!-- ä¿®æ¹/æ·»å æ ç¾å¼¹æ¡ --> |
| | |
| | | > |
| | | <el-form ref="form" :model="tagform" label-width="80px"> |
| | | <el-form-item label="æ ç¾åç§°"> |
| | | <el-input v-model="tagform.name"></el-input> |
| | | <el-input v-model="tagform.tagname"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="æ ç¾æè¿°"> |
| | | <el-select |
| | | v-model="tagform.tagcategoryid" |
| | | placeholder="è¯·éæ©æ ç¾åç±»" |
| | | > |
| | | <el-option |
| | | v-for="item in editableTabs" |
| | | :key="item.tagcategoryid" |
| | | :label="item.categoryname" |
| | | :value="item.tagcategoryid" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æ¯å¦å¯ç¨"> |
| | | <el-switch v-model="tagform.delivery"></el-switch> |
| | | <el-switch |
| | | v-model="tagform.isupload" |
| | | :active-value="1" |
| | | :inactive-value="0" |
| | | active-color="#13ce66" |
| | | ></el-switch> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="æ ç¾æè¿°"> |
| | | <el-input type="textarea" v-model="tagform.desc"></el-input> |
| | | <el-input type="textarea" v-model="tagform.tagdescription"></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> |
| | | <el-button type="primary" @click="Maintenancetag">ç¡® å®</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | |
| | | |
| | | <script> |
| | | import { |
| | | listUser, |
| | | getUser, |
| | | delUser, |
| | | addUser, |
| | | updateUser, |
| | | } from "@/api/system/user"; |
| | | import { getToken } from "@/utils/auth"; |
| | | toamendtag, |
| | | addapitag, |
| | | detailstag, |
| | | deletetag, |
| | | changetagcategory, |
| | | toamendtagcategory, |
| | | addtagcategory, |
| | | deletetagcategory, |
| | | listtag, |
| | | tagclassifylist, |
| | | } from "@/api/system/label"; |
| | | |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | export default { |
| | |
| | | multiple: true, |
| | | // æ¾ç¤ºæç´¢æ¡ä»¶ |
| | | showSearch: true, |
| | | idds: "", //åç±»id |
| | | // æ»æ¡æ° |
| | | total: 0, |
| | | amendtag: false, //æ¯å¦ä¿®æ¹ç±»å« |
| | |
| | | deletefenl: "é«è¡å", //å é¤é¡¹ |
| | | //ä¿®æ¹æ·»å æ ç¾å¼¹æ¡æ°æ® |
| | | tagform: { |
| | | delivery: "", |
| | | name: "", |
| | | desc: "", |
| | | isupload: "", |
| | | tagname: "", |
| | | tagcategoryid: "", |
| | | tagdescription: "", |
| | | }, |
| | | classifyform: { |
| | | categoryname: "", |
| | | }, |
| | | // æ ç¾è¡¨æ ¼æ°æ® |
| | | userList: [ |
| | | { |
| | | userId: 1, |
| | | userName: "ä¸å·", |
| | | nickName: "1.2.4", |
| | | aphonenumber: "å
³èçç", |
| | | delivery: true, |
| | | aphonenumbers: "", |
| | | bphonenumber: "徿£", |
| | | cphonenumber: "2022-12-12 ", |
| | | }, |
| | | ], |
| | | userList: [], |
| | | // å¼¹åºå±æ é¢ |
| | | title: "", |
| | | // æ¯å¦æ¾ç¤ºå¼¹åºå± |
| | |
| | | roleOptions: [], |
| | | // 表ååæ° |
| | | form: {}, |
| | | forms: { |
| | | name: "", |
| | | }, |
| | | numberlb: 22, |
| | | numberlbs: 2, |
| | | sidecolumnform: { |
| | | classesname: "", |
| | | }, //æ·»å ç±»å«è¡¨å |
| | | dialogFormVisible: false, //æ·»å ãä¿®æ¹ç±»å«å¼¹æ¡ |
| | | lstamendtagVisible: false, //æ·»å ãä¿®æ¹æ ç¾å¼¹æ¡ |
| | | goQRCodeVisible: false, //äºç»´ç å¼¹æ¡ |
| | | sidecolumnval: "", //ç±»å«æç´¢ |
| | | propss: { multiple: true }, |
| | | topqueryParams: {}, //导åºç鿡件 |
| | | optionss: [ |
| | | { |
| | | value: 1, |
| | |
| | | number: "2", |
| | | }, |
| | | ], |
| | | // æ¥è¯¢åæ° |
| | | // æ¥è¯¢æ ç¾åè¡¨åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | userName: undefined, |
| | | phonenumber: undefined, |
| | | status: undefined, |
| | | deptId: undefined, |
| | | IDnumber: undefined, |
| | | tagname: undefined, |
| | | tagdescription: undefined, |
| | | }, |
| | | // åä¿¡æ¯ |
| | | columns: [ |
| | | { key: 0, label: `ç¨æ·ç¼å·`, visible: true }, |
| | | { key: 1, label: `ç¨æ·åç§°`, visible: true }, |
| | | { key: 2, label: `ç¨æ·æµç§°`, visible: true }, |
| | | { 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", |
| | | }, |
| | | ], |
| | | }, |
| | | // 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(); |
| | | this.gitclasify(); |
| | | }, |
| | | |
| | | methods: { |
| | | /** æ¥è¯¢ç¨æ·å表 */ |
| | | /** æ¥è¯¢æ ç¾å表 */ |
| | | getList() { |
| | | // this.loading = true; |
| | | listUser().then((response) => { |
| | | listtag(this.addDateRange(this.queryParams)).then((response) => { |
| | | console.log(response); |
| | | // this.userList = response.data; |
| | | // this.total = response.total; |
| | | // this.loading = false; |
| | | console.log(this.userList); |
| | | this.total = response.total; |
| | | this.userList = response.rows; |
| | | }); |
| | | // const { rows } = await listUser(); |
| | | // console.log(rows); |
| | | // this.list = rows; |
| | | }, |
| | | // æ·»å ç±»å« |
| | | submitsidecolumn() { |
| | | this.dialogFormVisible = false; |
| | | /** ä¿®æ¹æ ç¾ */ |
| | | handleUpdate(row) { |
| | | console.log(row, "ä¿®æ¹æ ç¾"); |
| | | this.lstamendtagVisible = true; |
| | | this.lstamendtag = true; |
| | | this.tagform = { |
| | | delivery: "", |
| | | name: "", |
| | | desc: "", |
| | | isupload: row.isupload, |
| | | tagname: row.tagname, |
| | | tagcategoryid: row.tagcategoryid, |
| | | tagdescription: row.tagdescription, |
| | | tagid: row.tagid, |
| | | }; |
| | | }, |
| | | // ä¿®æ¹å¼¹æ¡ |
| | | popoveramend() { |
| | | addladeltag() { |
| | | this.lstamendtagVisible = true; |
| | | this.lstamendtag = false; |
| | | this.tagform = { |
| | | isupload: "", |
| | | tagname: "", |
| | | tagcategoryid: "", |
| | | tagdescription: "", |
| | | tagid: "", |
| | | }; |
| | | }, |
| | | // æ·»å /ä¿®æ¹æ ç¾ |
| | | Maintenancetag() { |
| | | if (this.lstamendtag) { |
| | | toamendtag(this.addDateRange(this.tagform)).then((response) => { |
| | | console.log(response); |
| | | this.getList(); |
| | | }); |
| | | } else { |
| | | addapitag(this.addDateRange(this.tagform)).then((response) => { |
| | | console.log(response); |
| | | this.getList(); |
| | | }); |
| | | } |
| | | this.tagform = { |
| | | isupload: "", |
| | | tagname: "", |
| | | tagcategoryid: "", |
| | | tagdescription: "", |
| | | tagid: "", |
| | | }; |
| | | }, |
| | | |
| | | // è·åæ ç¾åç±» |
| | | gitclasify() { |
| | | tagclassifylist(this.addDateRange(this.forms)).then((response) => { |
| | | console.log(response); |
| | | this.numberlb = response.total; |
| | | this.editableTabs = response.rows; |
| | | }); |
| | | }, |
| | | // æ·»å /ä¿®æ¹ç±»å« |
| | | submitsidecolumn() { |
| | | if (this.amendtag) { |
| | | this.classifyform.tagcategoryid = this.idds; |
| | | toamendtagcategory(this.addDateRange(this.classifyform)).then( |
| | | (response) => { |
| | | console.log(response); |
| | | this.gitclasify(); |
| | | } |
| | | ); |
| | | } else { |
| | | addtagcategory(this.addDateRange(this.classifyform)).then( |
| | | (response) => { |
| | | console.log(response); |
| | | this.gitclasify(); |
| | | } |
| | | ); |
| | | } |
| | | this.classifyform = { |
| | | categoryname: "", |
| | | }; |
| | | this.idds = ""; |
| | | this.dialogFormVisible = false; |
| | | }, |
| | | //å é¤åç±» |
| | | deletefenlei(row) { |
| | | if (this.deleteVisible) { |
| | | deletetagcategory(this.idds).then((response) => { |
| | | console.log(response); |
| | | this.gitclasify(); |
| | | }); |
| | | this.deleteVisible = false; |
| | | this.idds = ""; |
| | | } else { |
| | | this.deleteVisible = true; |
| | | this.idds = row.tagcategoryid; |
| | | this.deletefenl = row.categoryname; |
| | | } |
| | | }, |
| | | // ä¿®æ¹åç±»å¼¹æ¡ |
| | | popoveramend(tagcategoryid) { |
| | | this.idds = tagcategoryid; |
| | | this.amendtag = true; |
| | | this.dialogFormVisible = true; |
| | | }, |
| | | //æç´¢ç±»å« |
| | | sidecolumnss() {}, |
| | | // 忢å
±äº«/æ¬å° |
| | | tophandleClick() {}, |
| | | // åæ¶æé® |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | |
| | | // 表åéç½® |
| | | reset() { |
| | | this.form = { |
| | |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | // ç¨æ·ç¶æä¿®æ¹ |
| | | // æ ç¾ç¶æä¿®æ¹ |
| | | handleStatusChange(row) { |
| | | let text = row.status === "0" ? "å¯ç¨" : "åç¨"; |
| | | console.log(row.isupload); |
| | | let text = row.isupload === "0" ? "å¯ç¨" : "åç¨"; |
| | | this.$modal |
| | | .confirm('确认è¦"' + text + '""' + row.userName + '"æ ç¾åï¼') |
| | | .confirm('确认è¦"' + text + '""' + row.tagname + '"æ ç¾åï¼') |
| | | .then(function () { |
| | | // return changeUserStatus(row.userId, row.status); |
| | | return changetagcategory(row.tagid, row.isupload); |
| | | }) |
| | | .then(() => { |
| | | this.$modal.msgSuccess(text + "æå"); |
| | | }) |
| | | .catch(function () { |
| | | row.status = row.status === "0" ? "1" : "0"; |
| | | row.isupload = row.isupload === "0" ? "1" : "0"; |
| | | }); |
| | | }, |
| | | /** æç´¢æé®æä½ */ |
| | |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.resetForm("queryForm"); |
| | | this.queryParams.deptId = undefined; |
| | | this.queryParams.tagname = ""; |
| | | this.$refs.tree.setCurrentKey(null); |
| | | this.handleQuery(); |
| | | }, |
| | | // å¤éæ¡é䏿°æ® |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map((item) => item.userId); |
| | | this.ids = selection.map((item) => item.tagid); |
| | | 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; |
| | | const tagids = row.tagid || this.ids; |
| | | console.log(tagids); |
| | | const tagname = row.tagname; |
| | | this.$modal |
| | | .confirm( |
| | | aphonenumber |
| | | ? 'æ¯å¦ç¡®è®¤å 餿 ç¾å称为"' + aphonenumber + '"çæ°æ®é¡¹ï¼' |
| | | tagname |
| | | ? 'æ¯å¦ç¡®è®¤å 餿 ç¾å称为"' + tagname + '"çæ°æ®é¡¹ï¼' |
| | | : "æ¯å¦ç¡®è®¤å é¤éä¸çæ°æ®é¡¹ï¼" |
| | | ) |
| | | .then(function () { |
| | | return delUser(userIds); |
| | | return deletetag(tagids); |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | /** å¯¼åºæé®æä½ */ |
| | | handleExport() { |
| | | this.download( |
| | | "base/tag/export", |
| | | { |
| | | ...this.topqueryParams, |
| | | }, |
| | | `user_${new Date().getTime()}.xlsx` |
| | | ); |
| | | }, |
| | | }, |
| | | }; |
| | |
| | | font-size: 20px; |
| | | } |
| | | } |
| | | .document { |
| | | width: 100px; |
| | | height: 50px; |
| | | } |
| | | .documentf { |
| | | display: flex; |
| | | justify-content: flex-end; |
| | | } |
| | | .button-text { |
| | | color: rgb(70, 204, 238); |
| | | } |
| | |
| | | </el-col> |
| | | <!--ç¨æ·æ°æ®--> |
| | | <el-col :span="20" :xs="24"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="queryForm" |
| | | size="small" |
| | | :inline="true" |
| | | v-show="showSearch" |
| | | label-width="68px" |
| | | > |
| | | <el-form-item label="ç¨æ·åç§°" prop="userName"> |
| | | <el-input |
| | | v-model="queryParams.userName" |
| | |
| | | ></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">æç´¢</el-button> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">éç½®</el-button> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="mini" |
| | | @click="handleQuery" |
| | | >æç´¢</el-button |
| | | > |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" |
| | | >éç½®</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | |
| | | size="mini" |
| | | @click="handleAdd" |
| | | v-hasPermi="['system:user:add']" |
| | | >æ°å¢</el-button> |
| | | >æ°å¢</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | |
| | | :disabled="single" |
| | | @click="handleUpdate" |
| | | v-hasPermi="['system:user:edit']" |
| | | >ä¿®æ¹</el-button> |
| | | >ä¿®æ¹</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | |
| | | :disabled="multiple" |
| | | @click="handleDelete" |
| | | v-hasPermi="['system:user:remove']" |
| | | >å é¤</el-button> |
| | | >å é¤</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | |
| | | size="mini" |
| | | @click="handleImport" |
| | | v-hasPermi="['system:user:import']" |
| | | >导å
¥</el-button> |
| | | >导å
¥</el-button |
| | | > |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | |
| | | size="mini" |
| | | @click="handleExport" |
| | | v-hasPermi="['system:user:export']" |
| | | >导åº</el-button> |
| | | >导åº</el-button |
| | | > |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns"></right-toolbar> |
| | | <right-toolbar |
| | | :showSearch.sync="showSearch" |
| | | @queryTable="getList" |
| | | :columns="columns" |
| | | ></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-table v-loading="loading" :data="userList" @selection-change="handleSelectionChange"> |
| | | <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="status" v-if="columns[5].visible"> |
| | | <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="status" |
| | | v-if="columns[5].visible" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-switch |
| | | v-model="scope.row.status" |
| | |
| | | ></el-switch> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="å建æ¶é´" align="center" prop="createTime" v-if="columns[6].visible" width="160"> |
| | | <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> |
| | |
| | | icon="el-icon-edit" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['system:user:edit']" |
| | | >ä¿®æ¹</el-button> |
| | | >ä¿®æ¹</el-button |
| | | > |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-delete" |
| | | @click="handleDelete(scope.row)" |
| | | v-hasPermi="['system:user:remove']" |
| | | >å é¤</el-button> |
| | | <el-dropdown size="mini" @command="(command) => handleCommand(command, scope.row)" v-hasPermi="['system:user:resetPwd', 'system:user:edit']"> |
| | | <el-button size="mini" type="text" icon="el-icon-d-arrow-right">æ´å¤</el-button> |
| | | >å é¤</el-button |
| | | > |
| | | <el-dropdown |
| | | size="mini" |
| | | @command="(command) => handleCommand(command, scope.row)" |
| | | v-hasPermi="['system:user:resetPwd', 'system:user:edit']" |
| | | > |
| | | <el-button size="mini" type="text" icon="el-icon-d-arrow-right" |
| | | >æ´å¤</el-button |
| | | > |
| | | <el-dropdown-menu slot="dropdown"> |
| | | <el-dropdown-item command="handleResetPwd" icon="el-icon-key" |
| | | v-hasPermi="['system:user:resetPwd']">éç½®å¯ç </el-dropdown-item> |
| | | <el-dropdown-item command="handleAuthRole" icon="el-icon-circle-check" |
| | | v-hasPermi="['system:user:edit']">åé
è§è²</el-dropdown-item> |
| | | <el-dropdown-item |
| | | command="handleResetPwd" |
| | | icon="el-icon-key" |
| | | v-hasPermi="['system:user:resetPwd']" |
| | | >éç½®å¯ç </el-dropdown-item |
| | | > |
| | | <el-dropdown-item |
| | | command="handleAuthRole" |
| | | icon="el-icon-circle-check" |
| | | v-hasPermi="['system:user:edit']" |
| | | >åé
è§è²</el-dropdown-item |
| | | > |
| | | </el-dropdown-menu> |
| | | </el-dropdown> |
| | | </template> |
| | |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="ç¨æ·æµç§°" prop="nickName"> |
| | | <el-input v-model="form.nickName" placeholder="请è¾å
¥ç¨æ·æµç§°" maxlength="30" /> |
| | | <el-input |
| | | v-model="form.nickName" |
| | | placeholder="请è¾å
¥ç¨æ·æµç§°" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å½å±é¨é¨" prop="deptId"> |
| | | <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="è¯·éæ©å½å±é¨é¨" /> |
| | | <treeselect |
| | | v-model="form.deptId" |
| | | :options="deptOptions" |
| | | :show-count="true" |
| | | placeholder="è¯·éæ©å½å±é¨é¨" |
| | | /> |
| | | </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-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-input |
| | | v-model="form.email" |
| | | placeholder="请è¾å
¥é®ç®±" |
| | | maxlength="50" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item v-if="form.userId == undefined" label="ç¨æ·åç§°" prop="userName"> |
| | | <el-input v-model="form.userName" placeholder="请è¾å
¥ç¨æ·åç§°" maxlength="30" /> |
| | | <el-form-item |
| | | v-if="form.userId == undefined" |
| | | label="ç¨æ·åç§°" |
| | | prop="userName" |
| | | > |
| | | <el-input |
| | | v-model="form.userName" |
| | | placeholder="请è¾å
¥ç¨æ·åç§°" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item v-if="form.userId == undefined" label="ç¨æ·å¯ç " prop="password"> |
| | | <el-input v-model="form.password" placeholder="请è¾å
¥ç¨æ·å¯ç " type="password" maxlength="20" show-password/> |
| | | <el-form-item |
| | | v-if="form.userId == undefined" |
| | | label="ç¨æ·å¯ç " |
| | | prop="password" |
| | | > |
| | | <el-input |
| | | v-model="form.password" |
| | | placeholder="请è¾å
¥ç¨æ·å¯ç " |
| | | type="password" |
| | | maxlength="20" |
| | | show-password |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | v-for="dict in dict.type.sys_normal_disable" |
| | | :key="dict.value" |
| | | :label="dict.value" |
| | | >{{dict.label}}</el-radio> |
| | | >{{ dict.label }}</el-radio |
| | | > |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | </el-col> |
| | |
| | | <el-row> |
| | | <el-col :span="12"> |
| | | <el-form-item label="å²ä½"> |
| | | <el-select v-model="form.postIds" multiple placeholder="è¯·éæ©å²ä½"> |
| | | <el-select |
| | | v-model="form.postIds" |
| | | multiple |
| | | placeholder="è¯·éæ©å²ä½" |
| | | > |
| | | <el-option |
| | | v-for="item in postOptions" |
| | | :key="item.postId" |
| | |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="è§è²"> |
| | | <el-select v-model="form.roleIds" multiple placeholder="è¯·éæ©è§è²"> |
| | | <el-select |
| | | v-model="form.roleIds" |
| | | multiple |
| | | placeholder="è¯·éæ©è§è²" |
| | | > |
| | | <el-option |
| | | v-for="item in roleOptions" |
| | | :key="item.roleId" |
| | |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="夿³¨"> |
| | | <el-input v-model="form.remark" type="textarea" placeholder="请è¾å
¥å
容"></el-input> |
| | | <el-input |
| | | v-model="form.remark" |
| | | type="textarea" |
| | | placeholder="请è¾å
¥å
容" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | |
| | | </el-dialog> |
| | | |
| | | <!-- ç¨æ·å¯¼å
¥å¯¹è¯æ¡ --> |
| | | <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body> |
| | | <el-dialog |
| | | :title="upload.title" |
| | | :visible.sync="upload.open" |
| | | width="400px" |
| | | append-to-body |
| | | > |
| | | <el-upload |
| | | ref="upload" |
| | | :limit="1" |
| | |
| | | <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" /> æ¯å¦æ´æ°å·²ç»åå¨çç¨æ·æ°æ® |
| | | <el-checkbox v-model="upload.updateSupport" /> |
| | | æ¯å¦æ´æ°å·²ç»åå¨çç¨æ·æ°æ® |
| | | </div> |
| | | <span>ä»
å
许导å
¥xlsãxlsxæ ¼å¼æä»¶ã</span> |
| | | <el-link type="primary" :underline="false" style="font-size:12px;vertical-align: baseline;" @click="importTemplate">ä¸è½½æ¨¡æ¿</el-link> |
| | | <el-link |
| | | type="primary" |
| | | :underline="false" |
| | | style="font-size: 12px; vertical-align: baseline" |
| | | @click="importTemplate" |
| | | >ä¸è½½æ¨¡æ¿</el-link |
| | | > |
| | | </div> |
| | | </el-upload> |
| | | <div slot="footer" class="dialog-footer"> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { listUser, getUser, delUser, addUser, updateUser, resetUserPwd, changeUserStatus, deptTreeSelect } from "@/api/system/user"; |
| | | 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'], |
| | | dicts: ["sys_normal_disable", "sys_user_sex"], |
| | | components: { Treeselect }, |
| | | data() { |
| | | return { |
| | |
| | | form: {}, |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "label" |
| | | label: "label", |
| | | }, |
| | | // ç¨æ·å¯¼å
¥åæ° |
| | | upload: { |
| | |
| | | // 设置ä¸ä¼ ç请æ±å¤´é¨ |
| | | headers: { Authorization: "Bearer " + getToken() }, |
| | | // ä¸ä¼ çå°å |
| | | url: process.env.VUE_APP_BASE_API + "/system/user/importData" |
| | | url: process.env.VUE_APP_BASE_API + "/system/user/importData", |
| | | }, |
| | | // æ¥è¯¢åæ° |
| | | queryParams: { |
| | |
| | | userName: undefined, |
| | | phonenumber: undefined, |
| | | status: undefined, |
| | | deptId: undefined |
| | | deptId: undefined, |
| | | }, |
| | | // åä¿¡æ¯ |
| | | columns: [ |
| | |
| | | { key: 3, label: `é¨é¨`, visible: true }, |
| | | { key: 4, label: `ææºå·ç `, visible: true }, |
| | | { key: 5, label: `ç¶æ`, visible: true }, |
| | | { key: 6, label: `å建æ¶é´`, visible: true } |
| | | { key: 6, label: `å建æ¶é´`, visible: true }, |
| | | ], |
| | | // è¡¨åæ ¡éª |
| | | rules: { |
| | | userName: [ |
| | | { required: true, message: "ç¨æ·åç§°ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | { min: 2, max: 20, message: 'ç¨æ·åç§°é¿åº¦å¿
é¡»ä»äº 2 å 20 ä¹é´', trigger: 'blur' } |
| | | { |
| | | min: 2, |
| | | max: 20, |
| | | message: "ç¨æ·åç§°é¿åº¦å¿
é¡»ä»äº 2 å 20 ä¹é´", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | nickName: [ |
| | | { required: true, message: "ç¨æ·æµç§°ä¸è½ä¸ºç©º", trigger: "blur" } |
| | | { required: true, message: "ç¨æ·æµç§°ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | ], |
| | | password: [ |
| | | { required: true, message: "ç¨æ·å¯ç ä¸è½ä¸ºç©º", trigger: "blur" }, |
| | | { min: 5, max: 20, message: 'ç¨æ·å¯ç é¿åº¦å¿
é¡»ä»äº 5 å 20 ä¹é´', trigger: 'blur' } |
| | | { |
| | | min: 5, |
| | | max: 20, |
| | | message: "ç¨æ·å¯ç é¿åº¦å¿
é¡»ä»äº 5 å 20 ä¹é´", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | email: [ |
| | | { |
| | | type: "email", |
| | | message: "请è¾å
¥æ£ç¡®çé®ç®±å°å", |
| | | trigger: ["blur", "change"] |
| | | } |
| | | trigger: ["blur", "change"], |
| | | }, |
| | | ], |
| | | phonenumber: [ |
| | | { |
| | | pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, |
| | | message: "请è¾å
¥æ£ç¡®çææºå·ç ", |
| | | trigger: "blur" |
| | | } |
| | | ] |
| | | } |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | watch: { |
| | | // æ ¹æ®åç§°çéé¨é¨æ |
| | | deptName(val) { |
| | | this.$refs.tree.filter(val); |
| | | } |
| | | }, |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | this.getDeptTree(); |
| | | this.getConfigKey("sys.user.initPassword").then(response => { |
| | | this.getConfigKey("sys.user.initPassword").then((response) => { |
| | | this.initPassword = response.msg; |
| | | }); |
| | | }, |
| | |
| | | /** æ¥è¯¢ç¨æ·å表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listUser(this.addDateRange(this.queryParams, this.dateRange)).then(response => { |
| | | console.log(this.queryParams); |
| | | listUser(this.addDateRange(this.queryParams, this.dateRange)).then( |
| | | (response) => { |
| | | this.userList = response.rows; |
| | | this.total = response.total; |
| | | this.loading = false; |
| | |
| | | }, |
| | | /** æ¥è¯¢é¨é¨ä¸ææ ç»æ */ |
| | | getDeptTree() { |
| | | deptTreeSelect().then(response => { |
| | | deptTreeSelect().then((response) => { |
| | | this.deptOptions = response.data; |
| | | }); |
| | | }, |
| | |
| | | // ç¨æ·ç¶æä¿®æ¹ |
| | | handleStatusChange(row) { |
| | | let text = row.status === "0" ? "å¯ç¨" : "åç¨"; |
| | | this.$modal.confirm('确认è¦"' + text + '""' + row.userName + '"ç¨æ·åï¼').then(function() { |
| | | this.$modal |
| | | .confirm('确认è¦"' + text + '""' + row.userName + '"ç¨æ·åï¼') |
| | | .then(function () { |
| | | return changeUserStatus(row.userId, row.status); |
| | | }).then(() => { |
| | | }) |
| | | .then(() => { |
| | | this.$modal.msgSuccess(text + "æå"); |
| | | }).catch(function() { |
| | | }) |
| | | .catch(function () { |
| | | row.status = row.status === "0" ? "1" : "0"; |
| | | }); |
| | | }, |
| | |
| | | status: "0", |
| | | remark: undefined, |
| | | postIds: [], |
| | | roleIds: [] |
| | | roleIds: [], |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | |
| | | }, |
| | | // å¤éæ¡é䏿°æ® |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map(item => item.userId); |
| | | this.ids = selection.map((item) => item.userId); |
| | | this.single = selection.length != 1; |
| | | this.multiple = !selection.length; |
| | | }, |
| | |
| | | /** æ°å¢æé®æä½ */ |
| | | handleAdd() { |
| | | this.reset(); |
| | | getUser().then(response => { |
| | | getUser().then((response) => { |
| | | this.postOptions = response.posts; |
| | | this.roleOptions = response.roles; |
| | | this.open = true; |
| | |
| | | handleUpdate(row) { |
| | | this.reset(); |
| | | const userId = row.userId || this.ids; |
| | | getUser(userId).then(response => { |
| | | getUser(userId).then((response) => { |
| | | this.form = response.data; |
| | | this.postOptions = response.posts; |
| | | this.roleOptions = response.roles; |
| | |
| | | cancelButtonText: "åæ¶", |
| | | closeOnClickModal: false, |
| | | inputPattern: /^.{5,20}$/, |
| | | inputErrorMessage: "ç¨æ·å¯ç é¿åº¦å¿
é¡»ä»äº 5 å 20 ä¹é´" |
| | | }).then(({ value }) => { |
| | | resetUserPwd(row.userId, value).then(response => { |
| | | inputErrorMessage: "ç¨æ·å¯ç é¿åº¦å¿
é¡»ä»äº 5 å 20 ä¹é´", |
| | | }) |
| | | .then(({ value }) => { |
| | | resetUserPwd(row.userId, value).then((response) => { |
| | | this.$modal.msgSuccess("ä¿®æ¹æåï¼æ°å¯ç æ¯ï¼" + value); |
| | | }); |
| | | }).catch(() => {}); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | /** åé
è§è²æä½ */ |
| | | handleAuthRole: function(row) { |
| | |
| | | }, |
| | | /** æäº¤æé® */ |
| | | submitForm: function() { |
| | | this.$refs["form"].validate(valid => { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | if (this.form.userId != undefined) { |
| | | updateUser(this.form).then(response => { |
| | | updateUser(this.form).then((response) => { |
| | | this.$modal.msgSuccess("ä¿®æ¹æå"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } else { |
| | | addUser(this.form).then(response => { |
| | | 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() { |
| | | this.$modal |
| | | .confirm('æ¯å¦ç¡®è®¤å é¤ç¨æ·ç¼å·ä¸º"' + userIds + '"çæ°æ®é¡¹ï¼') |
| | | .then(function () { |
| | | return delUser(userIds); |
| | | }).then(() => { |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("å 餿å"); |
| | | }).catch(() => {}); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | /** å¯¼åºæé®æä½ */ |
| | | handleExport() { |
| | | this.download('system/user/export', { |
| | | ...this.queryParams |
| | | }, `user_${new Date().getTime()}.xlsx`) |
| | | this.download( |
| | | "system/user/export", |
| | | { |
| | | ...this.queryParams, |
| | | }, |
| | | `user_${new Date().getTime()}.xlsx` |
| | | ); |
| | | }, |
| | | /** 导å
¥æé®æä½ */ |
| | | handleImport() { |
| | |
| | | }, |
| | | /** ä¸è½½æ¨¡æ¿æä½ */ |
| | | importTemplate() { |
| | | this.download('system/user/importTemplate', { |
| | | }, `user_template_${new Date().getTime()}.xlsx`) |
| | | this.download( |
| | | "system/user/importTemplate", |
| | | {}, |
| | | `user_template_${new Date().getTime()}.xlsx` |
| | | ); |
| | | }, |
| | | // æä»¶ä¸ä¼ ä¸å¤ç |
| | | handleFileUploadProgress(event, 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.$alert( |
| | | "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + |
| | | response.msg + |
| | | "</div>", |
| | | "导å
¥ç»æ", |
| | | { dangerouslyUseHTMLString: true } |
| | | ); |
| | | this.getList(); |
| | | }, |
| | | // æäº¤ä¸ä¼ æä»¶ |
| | | submitFileForm() { |
| | | this.$refs.upload.submit(); |
| | | } |
| | | } |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | |
| | | proxy: { |
| | | // detail: https://cli.vuejs.org/config/#devserver-proxy |
| | | [process.env.VUE_APP_BASE_API]: { |
| | | target1: `http://116.62.18.175:8080`, |
| | | target: `http://localhost:8080`, |
| | | target1: `http://192.168.1.4:8080`, |
| | | target: `http://192.168.1.4:8080`, |
| | | changeOrigin: true, |
| | | pathRewrite: { |
| | | ['^' + process.env.VUE_APP_BASE_API]: '' |