| | |
| | | "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", |
| | |
| | | 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 |
| | | }) |
| | | }; |
| | | // æ°å¢æ ç¾ |
| | | export function addapitag(data) { |
| | | return request({ |
| | |
| | | data: data |
| | | }) |
| | | }; |
| | | // æ°å¢æ ç¾ç±»å« |
| | | export function addtagcategory(data) { |
| | | return request({ |
| | | url: '/system/tagcategory', |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | }; |
| | | |
| | | |
| | | /** |
| | | * |
| | |
| | | * å 餿 ç¾ |
| | | * @returns |
| | | */ |
| | | export function deletetag(tagid) { |
| | | export function deletetag(tagids) { |
| | | return request({ |
| | | url: '/base/tag/' + tagid, |
| | | url: '/base/tag/' + tagids, |
| | | method: 'delete', |
| | | }) |
| | | }; |
| | | /** |
| | | * |
| | | * @param {æ ç¾id} tagid |
| | | * å 餿 ç¾åç±» |
| | | * @returns |
| | | */ |
| | | export function deletetagcategory(tagid) { |
| | | return request({ |
| | | url: '/system/tagcategory/' + tagid, |
| | | method: 'delete', |
| | | }) |
| | | }; |
| | |
| | | * æ¥è¯¢æ ç¾å表 |
| | | * @returns |
| | | */ |
| | | export function listtag(query) { |
| | | export function listtag(data) { |
| | | return request({ |
| | | url: '/base/tag/list', |
| | | method: 'get', |
| | | params: query |
| | | method: 'post', |
| | | data: data |
| | | }) |
| | | }; |
| | | /** |
| | |
| | | * è·åæ ç¾åç±»å表 |
| | | * @returns |
| | | */ |
| | | export function tagclassifylist(data) { |
| | | export function tagclassifylist(params) { |
| | | return request({ |
| | | url: '/system/tagcategory/baseTagCategoryByName', |
| | | method: 'post', |
| | | data: data |
| | | params: params, |
| | | }) |
| | | }; |
| | |
| | | import plugins from './plugins' // plugins |
| | | import { download } from '@/utils/request' |
| | | //å¼å
¥quill-editorç¼è¾å¨ |
| | | // import VueQuillEditor from 'vue-quill-editor' |
| | | // import 'quill/dist/quill.core.css' |
| | | // import 'quill/dist/quill.snow.css' |
| | | // import 'quill/dist/quill.bubble.css' |
| | | 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 * as Quill from 'quill' |
| | | // import { ImageDrop } from 'quill-image-drop-module' |
| | | // Quill.register('modules/imageDrop', ImageDrop) |
| | | // 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ç¼è¾å¨è°æ´å¾ç尺寸 |
| | | // import ImageResize from 'quill-image-resize-module' |
| | | // Quill.register('modules/imageResize', ImageResize) |
| | | |
| | | import './assets/icons' // icon |
| | |
| | | <!-- 宣æå
容 --> |
| | | <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-table |
| | | v-loading="loading" |
| | | :data="userList" |
| | | border="true" |
| | | border |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | |
| | | </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> |
| | |
| | | > |
| | | <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 |
| | | > |
| | |
| | | <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> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | listUser, |
| | | getUser, |
| | | delUser, |
| | | addUser, |
| | | updateUser, |
| | | } from "@/api/system/user"; |
| | | import { addUser, updateUser } from "@/api/system/user"; |
| | | import { |
| | | toamendtag, |
| | | addapitag, |
| | | detailstag, |
| | | deletetag, |
| | | changetagcategory, |
| | | toamendtagcategory, |
| | | addtagcategory, |
| | | deletetagcategory, |
| | | listtag, |
| | | tagclassifylist, |
| | | } from "@/api/system/label"; |
| | |
| | | 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, //äºç»´ç å¼¹æ¡ |
| | |
| | | number: "2", |
| | | }, |
| | | ], |
| | | // æ¥è¯¢åæ° |
| | | // æ¥è¯¢æ ç¾åè¡¨åæ° |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | userName: undefined, |
| | | phonenumber: undefined, |
| | | status: undefined, |
| | | deptId: undefined, |
| | | IDnumber: undefined, |
| | | tagname: undefined, |
| | | tagdescription: undefined, |
| | | }, |
| | | // åä¿¡æ¯ |
| | | columns: [ |
| | |
| | | { 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: {}, |
| | |
| | | methods: { |
| | | /** æ¥è¯¢æ ç¾å表 */ |
| | | getList() { |
| | | // this.loading = true; |
| | | let forms = {}; |
| | | forms.name = this.sidecolumnval; |
| | | listtag(forms).then((response) => { |
| | | listtag(this.addDateRange(this.queryParams)).then((response) => { |
| | | console.log(response); |
| | | }); |
| | | listUser().then((response) => { |
| | | console.log(response); |
| | | |
| | | console.log(this.userList); |
| | | this.total = response.total; |
| | | this.userList = response.rows; |
| | | }); |
| | | }, |
| | | // è·åæ ç¾åç±» |
| | | gitclasify() { |
| | | let forms = {}; |
| | | forms.name = this.sidecolumnval; |
| | | tagclassifylist(forms).then((response) => { |
| | | console.log(response); |
| | | }); |
| | | }, |
| | | // æ·»å ç±»å« |
| | | 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; |
| | | }, |
| | | // 忢å
±äº«/æ¬å° |
| | | tophandleClick() {}, |
| | | // åæ¶æé® |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | |
| | | // 表åéç½® |
| | | reset() { |
| | | this.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" }, |
| | | }); |
| | | }, |
| | | |
| | | /** æ´æ°/ä¿®æ¹æäº¤æé® */ |
| | |
| | | /** å é¤æé®æä½ */ |
| | | 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(); |
| | |
| | | /** å¯¼åºæé®æä½ */ |
| | | handleExport() { |
| | | this.download( |
| | | "basetag/export", |
| | | "base/tag/export", |
| | | { |
| | | ...this.topqueryParams, |
| | | }, |
| | |
| | | </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> |
| | |
| | | // detail: https://cli.vuejs.org/config/#devserver-proxy |
| | | [process.env.VUE_APP_BASE_API]: { |
| | | target1: `http://192.168.1.4:8080`, |
| | | target: `http://localhost:8080`, |
| | | target: `http://192.168.1.4:8080`, |
| | | changeOrigin: true, |
| | | pathRewrite: { |
| | | ['^' + process.env.VUE_APP_BASE_API]: '' |