Commit 41e7a6e5 by H.wb.wang.peixun

接口对接

parent b43868a1
...@@ -103,87 +103,22 @@ export default { ...@@ -103,87 +103,22 @@ export default {
}, },
}, },
methods: { methods: {
// 上传前校检格式和大小 // 文件上传中处理
handleBeforeUpload(file) { handleFileUploadProgress(event, file, fileList) {
// 校检文件类型 this.upload.isUploading = true;
if (this.fileType) { },
const fileName = file.name.split('.'); // 文件上传成功处理
const fileExt = fileName[fileName.length - 1]; handleFileSuccess(response, file, fileList) {
const isTypeOk = this.fileType.indexOf(fileExt) >= 0; this.upload.open = false;
if (!isTypeOk) { this.upload.isUploading = false;
this.$modal.msgError(`文件格式不正确, 请上传${this.fileType.join("/")}格式文件!`); this.$refs.upload.clearFiles();
return false; 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();
} }
}
// 校检文件大小
if (this.fileSize) {
const isLt = file.size / 1024 / 1024 < this.fileSize;
if (!isLt) {
this.$modal.msgError(`上传文件大小不能超过 ${this.fileSize} MB!`);
return false;
}
}
this.$modal.loading("正在上传文件,请稍候...");
this.number++;
return true;
},
// 文件个数超出
handleExceed() {
this.$modal.msgError(`上传文件数量不能超过 ${this.limit} 个!`);
},
// 上传失败
handleUploadError(err) {
this.$modal.msgError("上传文件失败,请重试");
this.$modal.closeLoading();
},
// 上传成功回调
handleUploadSuccess(res, file) {
if (res.code === 200) {
this.uploadList.push({ name: res.data.fileName, url: res.data.url, ossId: res.data.ossId });
this.uploadedSuccessfully();
} else {
this.number--;
this.$modal.closeLoading();
this.$modal.msgError(res.msg);
this.$refs.fileUpload.handleRemove(file);
this.uploadedSuccessfully();
}
},
// 删除文件
handleDelete(index) {
let ossId = this.fileList[index].ossId;
delOss(ossId);
this.fileList.splice(index, 1);
this.$emit("input", this.listToString(this.fileList));
},
// 上传结束处理
uploadedSuccessfully() {
if (this.number > 0 && this.uploadList.length === this.number) {
this.fileList = this.fileList.concat(this.uploadList);
this.uploadList = [];
this.number = 0;
this.$emit("input", this.listToString(this.fileList));
this.$modal.closeLoading();
}
},
// 获取文件名称
getFileName(name) {
// 如果是url那么取最后的名字 如果不是直接返回
if (name.lastIndexOf("/") > -1) {
return name.slice(name.lastIndexOf("/") + 1);
} else {
return name;
}
},
// 对象转成指定字符串分隔
listToString(list, separator) {
let strs = "";
separator = separator || ",";
for (let i in list) {
strs += list[i].ossId + separator;
}
return strs != "" ? strs.substr(0, strs.length - 1) : "";
},
}, },
}; };
</script> </script>
......
<template> <template>
<div> <div>
<el-upload <el-upload :action="uploadUrl" :before-upload="handleBeforeUpload" :on-success="handleUploadSuccess"
:action="uploadUrl" :on-error="handleUploadError" name="file" :show-file-list="false" :headers="headers" style="display: none"
:before-upload="handleBeforeUpload" ref="upload" v-if="this.type == 'url'">
:on-success="handleUploadSuccess"
:on-error="handleUploadError"
name="file"
:show-file-list="false"
:headers="headers"
style="display: none"
ref="upload"
v-if="this.type == 'url'"
>
</el-upload> </el-upload>
<div class="editor" ref="editor" :style="styles"></div> <div class="editor" ref="editor" :style="styles"></div>
</div> </div>
...@@ -23,6 +14,7 @@ import "quill/dist/quill.core.css"; ...@@ -23,6 +14,7 @@ import "quill/dist/quill.core.css";
import "quill/dist/quill.snow.css"; import "quill/dist/quill.snow.css";
import "quill/dist/quill.bubble.css"; import "quill/dist/quill.bubble.css";
import { getToken } from "@/utils/auth"; import { getToken } from "@/utils/auth";
import $axios from 'axios'
export default { export default {
name: "Editor", name: "Editor",
...@@ -111,10 +103,15 @@ export default { ...@@ -111,10 +103,15 @@ export default {
watch: { watch: {
value: { value: {
handler(val) { handler(val) {
console.log(val, 'val-------------')
if (val !== this.currentValue) { if (val !== this.currentValue) {
this.currentValue = val === null ? "" : val; this.currentValue = val === null ? "" : val;
console.log(this.currentValue, 'val-------------11111111')
if (this.Quill) { if (this.Quill) {
this.Quill.pasteHTML(this.currentValue); this.Quill.pasteHTML(this.currentValue);
console.log(this.Quill, 'val-------------2222222222222')
} }
} }
}, },
...@@ -131,6 +128,48 @@ export default { ...@@ -131,6 +128,48 @@ export default {
init() { init() {
const editor = this.$refs.editor; const editor = this.$refs.editor;
this.Quill = new Quill(editor, this.options); this.Quill = new Quill(editor, this.options);
window.addEventListener(
"paste",
(evt) => {
if (
evt.clipboardData &&
evt.clipboardData.files &&
evt.clipboardData.files.length
) {
evt.preventDefault();
[].forEach.call(evt.clipboardData.files, (file) => {
if (!file.type.match(/^image\/(gif|jpe?g|a?png|bmp)/i)) {
return;
}
const formData = new FormData();
formData.append("file", file);
$axios.post(`${process.env.VUE_APP_BASE_API}school-paper/banner/uploadFile`, formData, {
headers: {
'Authorization': 'Bearer ' + getToken()
}
}).then(
res => {
console.log(res);
if (res.data.code == 200) {
console.log(res.data.data.src)
let length = this.Quill.getSelection().index; //光标位置
// 插入图片地址
this.Quill.insertEmbed(length, "image", res.data.data.url);
// 光标后移一位
this.Quill.setSelection(length + 1);
} else {
this.$message({
message: res.data.message,
type: 'warning'
});
}
})
});
}
},
false
);
// 如果设置了上传地址则自定义图片上传事件 // 如果设置了上传地址则自定义图片上传事件
if (this.type == "url") { if (this.type == "url") {
let toolbar = this.Quill.getModule("toolbar"); let toolbar = this.Quill.getModule("toolbar");
...@@ -202,12 +241,15 @@ export default { ...@@ -202,12 +241,15 @@ export default {
white-space: pre-wrap !important; white-space: pre-wrap !important;
line-height: normal !important; line-height: normal !important;
} }
.quill-img { .quill-img {
display: none; display: none;
} }
.ql-snow .ql-tooltip[data-mode="link"]::before { .ql-snow .ql-tooltip[data-mode="link"]::before {
content: "请输入链接地址:"; content: "请输入链接地址:";
} }
.ql-snow .ql-tooltip.ql-editing a.ql-action::after { .ql-snow .ql-tooltip.ql-editing a.ql-action::after {
border-right: 0px; border-right: 0px;
content: "保存"; content: "保存";
...@@ -222,14 +264,17 @@ export default { ...@@ -222,14 +264,17 @@ export default {
.ql-snow .ql-picker.ql-size .ql-picker-item::before { .ql-snow .ql-picker.ql-size .ql-picker-item::before {
content: "14px"; content: "14px";
} }
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="small"]::before, .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 { .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="small"]::before {
content: "10px"; content: "10px";
} }
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="large"]::before, .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 { .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="large"]::before {
content: "18px"; content: "18px";
} }
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value="huge"]::before, .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 { .ql-snow .ql-picker.ql-size .ql-picker-item[data-value="huge"]::before {
content: "32px"; content: "32px";
...@@ -239,26 +284,32 @@ export default { ...@@ -239,26 +284,32 @@ export default {
.ql-snow .ql-picker.ql-header .ql-picker-item::before { .ql-snow .ql-picker.ql-header .ql-picker-item::before {
content: "文本"; content: "文本";
} }
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before, .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 { .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
content: "标题1"; content: "标题1";
} }
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before, .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 { .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
content: "标题2"; content: "标题2";
} }
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before, .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 { .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
content: "标题3"; content: "标题3";
} }
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before, .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 { .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
content: "标题4"; content: "标题4";
} }
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before, .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 { .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
content: "标题5"; content: "标题5";
} }
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before, .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 { .ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
content: "标题6"; content: "标题6";
...@@ -268,10 +319,12 @@ export default { ...@@ -268,10 +319,12 @@ export default {
.ql-snow .ql-picker.ql-font .ql-picker-item::before { .ql-snow .ql-picker.ql-font .ql-picker-item::before {
content: "标准字体"; content: "标准字体";
} }
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="serif"]::before, .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 { .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="serif"]::before {
content: "衬线字体"; content: "衬线字体";
} }
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value="monospace"]::before, .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 { .ql-snow .ql-picker.ql-font .ql-picker-item[data-value="monospace"]::before {
content: "等宽字体"; content: "等宽字体";
......
...@@ -99,11 +99,12 @@ export default { ...@@ -99,11 +99,12 @@ export default {
// }) // })
} }
// 然后将数组转为对象数组 // 然后将数组转为对象数组
// this.fileList = list.map(item => { this.fileList = list.map(item => {
// item = { url: item.url}; item = { url: item.url,name:item.name};
// item.uid = item.uid || new Date().getTime() + temp++; // item.uid = item.uid || new Date().getTime() + temp++;
// return item; return item;
// }); });
console.log(this.fileList,'fileList---------')
} else { } else {
this.fileList = []; this.fileList = [];
return []; return [];
...@@ -185,6 +186,7 @@ export default { ...@@ -185,6 +186,7 @@ export default {
}, },
// 获取文件名称 // 获取文件名称
getFileName(name) { getFileName(name) {
console.log(name,'===========')
// 如果是url那么取最后的名字 如果不是直接返回 // 如果是url那么取最后的名字 如果不是直接返回
if (name.lastIndexOf("/") > -1) { if (name.lastIndexOf("/") > -1) {
return name.slice(name.lastIndexOf("/") + 1); return name.slice(name.lastIndexOf("/") + 1);
......
...@@ -2,12 +2,7 @@ ...@@ -2,12 +2,7 @@
<div class="app-container"> <div class="app-container">
<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="profileName"> <el-form-item label="资料管理" prop="profileName">
<el-input <el-input v-model="queryParams.profileName" placeholder="请输入资料名称搜索" clearable @keyup.enter.native="handleQuery" />
v-model="queryParams.profileName"
placeholder="请输入资料名称搜索"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item> </el-form-item>
<!-- <el-form-item label="资料地址" prop="profileUrl"> <!-- <el-form-item label="资料地址" prop="profileUrl">
<el-input <el-input
...@@ -25,12 +20,8 @@ ...@@ -25,12 +20,8 @@
<el-row :gutter="10" class="mb8"> <el-row :gutter="10" class="mb8">
<el-col :span="1.5"> <el-col :span="1.5">
<el-button <el-button type="primary" size="mini" @click="handleAdd"
type="primary" v-hasPermi="['school-paper:profile:add']">上传资料</el-button>
size="mini"
@click="handleAdd"
v-hasPermi="['school-paper:profile:add']"
>上传资料</el-button>
</el-col> </el-col>
<!-- <el-col :span="1.5"> <!-- <el-col :span="1.5">
<el-button <el-button
...@@ -76,34 +67,19 @@ ...@@ -76,34 +67,19 @@
<el-table-column label="状态:0正常,1删除" align="center" prop="status" /> --> <el-table-column label="状态:0正常,1删除" align="center" prop="status" /> -->
<el-table-column label="操作" align="center" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
size="mini" v-hasPermi="['school-paper:profile:edit']">下载</el-button>
type="text" <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
icon="el-icon-edit" v-hasPermi="['school-paper:profile:remove']">删除</el-button>
@click="handleUpdate(scope.row)"
v-hasPermi="['school-paper:profile:edit']"
>下载</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['school-paper:profile:remove']"
>删除</el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
v-show="total>0" @pagination="getList" />
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改资料对话框 --> <!-- 添加或修改资料对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body> <!-- <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="资料名称" prop="profileName"> <el-form-item label="资料名称" prop="profileName">
<el-input v-model="form.profileName" placeholder="请输入资料名称" /> <el-input v-model="form.profileName" placeholder="请输入资料名称" />
...@@ -116,17 +92,54 @@ ...@@ -116,17 +92,54 @@
<el-button @click="cancel">取 消</el-button> <el-button @click="cancel">取 消</el-button>
<el-button :loading="buttonLoading" type="primary" @click="submitForm">上 传</el-button> <el-button :loading="buttonLoading" type="primary" @click="submitForm">上 传</el-button>
</div> </div>
</el-dialog> -->
<!-- 用户导入对话框 -->
<el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="资料名称" prop="profileName">
<el-input v-model="form.profileName" placeholder="请输入资料名称" />
</el-form-item>
<el-upload ref="upload" :limit="1" accept=".xlsx, .xls" :headers="upload.headers"
:action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading"
:on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="false" drag>
<i class="el-icon-upload"></i>
<div class="el-upload__text">将文件拖到此处,或<em>点击上传</em></div>
<div class="el-upload__tip text-center" slot="tip">
<span>仅允许导入xls、xlsx格式文件。</span>
</div>
</el-upload>
</el-form>
<div slot="footer" class="dialog-footer" style="text-align: center;">
<el-button @click="cancel">取 消</el-button>
<el-button :loading="buttonLoading" type="primary" @click="submitForm">上 传</el-button>
</div>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script> <script>
import { listProfile, getProfile, delProfile, addProfile, updateProfile } from "@/api/school-paper/profile"; import { listProfile, getProfile, delProfile, addProfile, updateProfile } from "@/api/school-paper/profile";
import { getToken } from "@/utils/auth";
export default { export default {
name: "Profile", name: "Profile",
data() { data() {
return { return {
// 用户导入参数
upload: {
// 是否显示弹出层(用户导入)
open: false,
// 弹出层标题(用户导入)
title: "",
// 是否禁用上传
isUploading: false,
// 是否更新已经存在的用户数据
updateSupport: 0,
// 设置上传的请求头部
headers: { Authorization: "Bearer " + getToken() },
// 上传的地址
url: process.env.VUE_APP_BASE_API + "school-paper/banner/uploadFile"
},
// 按钮loading // 按钮loading
buttonLoading: false, buttonLoading: false,
// 遮罩层 // 遮罩层
...@@ -160,9 +173,6 @@ export default { ...@@ -160,9 +173,6 @@ export default {
profileName: [ profileName: [
{ required: true, message: "资料名称不能为空", trigger: "blur" } { required: true, message: "资料名称不能为空", trigger: "blur" }
], ],
profileUrl: [
{ required: true, message: "资料地址不能为空", trigger: "blur" }
],
} }
}; };
}, },
...@@ -205,13 +215,13 @@ export default { ...@@ -205,13 +215,13 @@ export default {
// 多选框选中数据 // 多选框选中数据
handleSelectionChange(selection) { handleSelectionChange(selection) {
this.ids = selection.map(item => item.id) this.ids = selection.map(item => item.id)
this.single = selection.length!==1 this.single = selection.length !== 1
this.multiple = !selection.length this.multiple = !selection.length
}, },
/** 新增按钮操作 */ /** 新增按钮操作 */
handleAdd() { handleAdd() {
this.reset(); this.reset();
this.open = true; this.upload.open = true;
this.title = "添加资料"; this.title = "添加资料";
}, },
/** 下载操作 */ /** 下载操作 */
...@@ -264,6 +274,22 @@ export default { ...@@ -264,6 +274,22 @@ export default {
this.download('school-paper/profile/export', { this.download('school-paper/profile/export', {
...this.queryParams ...this.queryParams
}, `profile_${new Date().getTime()}.xlsx`) }, `profile_${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() {
this.$refs.upload.submit();
} }
} }
}; };
......
...@@ -223,7 +223,7 @@ ...@@ -223,7 +223,7 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="年级阶段:" prop="phaseId"> <el-form-item label="年级阶段:" prop="phaseId">
<el-select clearable v-model="form.phaseId" placeholder="请选择阶段" @change="handleQuery"> <el-select clearable v-model="form.phaseId" placeholder="请选择阶段" >
<el-option v-for="item in PhaseList" :key="item.deptId" :label="item.deptName" :value="item.deptId"> <el-option v-for="item in PhaseList" :key="item.deptId" :label="item.deptName" :value="item.deptId">
</el-option> </el-option>
</el-select> </el-select>
...@@ -241,7 +241,7 @@ ...@@ -241,7 +241,7 @@
</el-form-item> </el-form-item>
<el-form-item label="习题种类:" prop="species"> <el-form-item label="习题种类:" prop="species">
<!-- 1填空,2选择,3解答 --> <!-- 1填空,2选择,3解答 -->
<el-select clearable v-model="form.species" placeholder="请选择习题种类" @change="changeSpecies"> <el-select clearable v-model="form.species" placeholder="请选择习题种类" >
<el-option v-for="item in [ <el-option v-for="item in [
{ label: '填空', value: 1 }, { label: '填空', value: 1 },
{ label: '选择', value: 2 }, { label: '选择', value: 2 },
...@@ -578,6 +578,7 @@ export default { ...@@ -578,6 +578,7 @@ export default {
rightAnswersPic: undefined, rightAnswersPic: undefined,
resolveCourse: undefined, resolveCourse: undefined,
resolveVideo: undefined, resolveVideo: undefined,
resolveVideoName:undefined,
remark: undefined, remark: undefined,
status: undefined, status: undefined,
createTime: undefined, createTime: undefined,
...@@ -733,12 +734,13 @@ export default { ...@@ -733,12 +734,13 @@ export default {
} }
}) })
if (self.form.resolveVideo) { if (self.form.resolveVideo) {
let arr = self.form.resolveVideo.split(','), let brr = [];
brr = []; // arr.forEach((item) => {
arr.forEach((item) => {
// })
brr.push({ brr.push({
url: item url: self.form.resolveVideo,
}) name:self.form.resolveVideoName
}) })
self.form.resolveVideo = brr self.form.resolveVideo = brr
// self.$refs['refFileupload'].fileList = brr // self.$refs['refFileupload'].fileList = brr
...@@ -810,8 +812,10 @@ export default { ...@@ -810,8 +812,10 @@ export default {
} }
if (this.form.type == 1) { if (this.form.type == 1) {
this.form.resolveVideo = this.$refs['refFileupload'].fileList this.form.resolveVideo = this.$refs['refFileupload'].fileList
this.form.resolveVideoName = this.$refs['refFileupload'].fileList[0].name
} }
// console.log(this.form.resolveVideo,this.$refs['refFileupload'].fileList,'------------') // console.log(this.form.resolveVideo,this.$refs['refFileupload'].fileList,'------------')
// return
this.form.rightAnswers = arr[this.form.rightAnswers] this.form.rightAnswers = arr[this.form.rightAnswers]
// 判断是否是填空题 // 判断是否是填空题
if (self.form.species == 1) { if (self.form.species == 1) {
......
<template> <template>
<!-- <div class="main"> <!-- <div class="main">
<div class="tree"> --> <div class="tree"> -->
<Treeselect <Treeselect v-model="value" :options="options" :placeholder="'请选择人员'" :multiple="multiple" @input="treeSelectInput"
v-model="value" @select="treeSelectChange" @deselect="treeSelectDeselect" @search-change="treeSelectSearch" @open="treeSelectOpen"
:options="options" @close="treeSelectClose" />
:placeholder="'请选择人员'"
:multiple="multiple"
@input="treeSelectInput"
@select="treeSelectChange"
@deselect="treeSelectDeselect"
@search-change="treeSelectSearch"
@open="treeSelectOpen"
@close="treeSelectClose"
/>
<!-- </div> <!-- </div>
</div> --> </div> -->
</template> </template>
...@@ -26,16 +17,17 @@ export default { ...@@ -26,16 +17,17 @@ export default {
data() { data() {
return { return {
value: null, value: null,
options: [] options: [],
rawList: [],
} }
}, },
props:{ props: {
multiple:{ multiple: {
type:false type: false
} }
}, },
components: { Treeselect }, components: { Treeselect },
mounted(){ mounted() {
// 延迟模拟请求数据 // 延迟模拟请求数据
setTimeout(() => { setTimeout(() => {
// this.options = treeData // this.options = treeData
...@@ -43,7 +35,7 @@ export default { ...@@ -43,7 +35,7 @@ export default {
}, 300) }, 300)
this.getDeptTree() this.getDeptTree()
}, },
methods:{ methods: {
/** 查询部门下拉树结构 */ /** 查询部门下拉树结构 */
getDeptTree() { getDeptTree() {
deptTreeSelect().then(response => { deptTreeSelect().then(response => {
...@@ -58,8 +50,20 @@ export default { ...@@ -58,8 +50,20 @@ export default {
// 选中触发(清除值的时候不会触发) // 选中触发(清除值的时候不会触发)
treeSelectChange(raw, instanceId) { treeSelectChange(raw, instanceId) {
console.log(raw, '当前的对象') console.log(raw, '当前的对象')
let self = this
this.rawList = raw
setTimeout(() => { // 如果用到this.value 需要setTimeout延迟一下拿到最新的值 setTimeout(() => { // 如果用到this.value 需要setTimeout延迟一下拿到最新的值
console.log(this.value, 'this.value -- select') console.log(this.value, raw, 'this.value -- select')
if (!this.multiple) {
if (raw.children == undefined) {
} else {
if (self.value == raw.id) {
self.value = null
}
}
}
}) })
}, },
// 移除选项时触发 当设置multiple为true时生效 raw为当前移除的对象 // 移除选项时触发 当设置multiple为true时生效 raw为当前移除的对象
...@@ -76,7 +80,7 @@ export default { ...@@ -76,7 +80,7 @@ export default {
}, },
// 关闭触发 // 关闭触发
treeSelectClose(value, instanceId) { treeSelectClose(value, instanceId) {
console.log(value, '当前的value值') console.log(value, this.rawList.id, '当前的value值')
}, },
// 字段默认 id label 用于规范化数据源 // 字段默认 id label 用于规范化数据源
tenantIdnormalizer(node, instanceId) { tenantIdnormalizer(node, instanceId) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment