提交 47d3504a authored 作者: 龙菲's avatar 龙菲

修改富文本编辑器;修改默认上架状态为上架;增加数据权限修改;

上级 62841a5e
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
"dependencies": { "dependencies": {
"axios": "0.18.1", "axios": "0.18.1",
"core-js": "3.6.5", "core-js": "3.6.5",
"echarts": "^5.3.3", "echarts": "^5.4.0",
"element-ui": "2.13.2", "element-ui": "2.13.2",
"js-cookie": "2.2.0", "js-cookie": "2.2.0",
"normalize.css": "7.0.0", "normalize.css": "7.0.0",
......
...@@ -149,6 +149,16 @@ export function getRoleById(id) { ...@@ -149,6 +149,16 @@ export function getRoleById(id) {
}) })
} }
// 绑定角色数据权限
export function bindDept(data) {
return request({
url: 'sys/role/bindDept',
method: 'post',
data
})
}
// 获取所有目录菜单树 // 获取所有目录菜单树
export function getPermissionTreeAll(params) { export function getPermissionTreeAll(params) {
return request({ return request({
......
src/assets/imgs/avatar.png

41.4 KB | W: | H:

src/assets/imgs/avatar.png

10.4 KB | W: | H:

src/assets/imgs/avatar.png
src/assets/imgs/avatar.png
src/assets/imgs/avatar.png
src/assets/imgs/avatar.png
  • 2-up
  • Swipe
  • Onion skin
...@@ -44,7 +44,8 @@ export default { ...@@ -44,7 +44,8 @@ export default {
edit: "el-icon-edit", edit: "el-icon-edit",
view: "el-icon-view", view: "el-icon-view",
delete: "el-icon-delete", delete: "el-icon-delete",
download:'el-icon-download' download:'el-icon-download',
dataPermission:"el-icon-key"
}, },
}; };
}, },
......
<!-- -->
<template>
<div class="">
<quill-editor
ref="myQuillEditor"
v-model="content"
:options="editorOption"
@change="onEditorChange($event)"
class=".editor"
/>
</div>
</template>
<script>
import { quillEditor } from "vue-quill-editor";
import "quill/dist/quill.core.css";
import "quill/dist/quill.snow.css";
import "quill/dist/quill.bubble.css";
export default {
name: "VueQuillEditor",
props: {
/*编辑器的内容*/
value: {
type: String,
},
},
watch: {
value: {
handler: function (val) {
this.content = val;
},
immediate: true,
deep: true,
},
},
components: {
quillEditor,
},
data() {
// 工具栏配置
const toolbarOptions = [
["bold", "italic", "underline", "strike"], // 加粗 斜体 下划线 删除线 -----['bold', 'italic', 'underline', 'strike']
["blockquote", "code-block"], // 引用 代码块-----['blockquote', 'code-block']
[{ header: 1 }, { header: 2 }], // 1、2 级标题-----[{ header: 1 }, { header: 2 }]
[{ list: "ordered" }, { list: "bullet" }], // 有序、无序列表-----[{ list: 'ordered' }, { list: 'bullet' }]
[{ script: "sub" }, { script: "super" }], // 上标/下标-----[{ script: 'sub' }, { script: 'super' }]
[{ indent: "-1" }, { indent: "+1" }], // 缩进-----[{ indent: '-1' }, { indent: '+1' }]
[{ direction: "rtl" }], // 文本方向-----[{'direction': 'rtl'}]
[{ size: ["small", false, "large", "huge"] }], // 字体大小-----[{ size: ['small', false, 'large', 'huge'] }]
[{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题-----[{ header: [1, 2, 3, 4, 5, 6, false] }]
[{ color: [] }, { background: [] }], // 字体颜色、字体背景颜色-----[{ color: [] }, { background: [] }]
[{ font: [] }], // 字体种类-----[{ font: [] }]
[{ align: [] }], // 对齐方式-----[{ align: [] }]
["clean"], // 清除文本格式-----['clean']
// ["image", "video"], // 链接、图片、视频-----['link', 'image', 'video']
];
return {
content: this.value, //内容
//富文本编辑器配置
editorOption: {
// 富文本编辑器配置
modules: {
//工具栏定义的
toolbar: toolbarOptions,
},
//主题
theme: "snow",
placeholder: "请输入馆藏介绍",
},
};
},
mounted() {},
methods: {
onEditorChange() {
//内容改变事件
this.$emit("input", this.content);
},
},
};
</script>
<style lang='scss'>
// 富文本编辑器汉化
.editor {
line-height: normal !important;
height: 500px;
}
.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 {
height: 40px;
}
.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>
\ No newline at end of file
...@@ -95,7 +95,7 @@ service.interceptors.response.use( ...@@ -95,7 +95,7 @@ service.interceptors.response.use(
error => { error => {
console.log('err' + error) // for debug console.log('err' + error) // for debug
Message({ Message({
message: error.msg, message: error.msg || '网络连接错误,请稍后重试',
type: 'error', type: 'error',
duration: 5 * 1000 duration: 5 * 1000
}) })
......
...@@ -121,20 +121,7 @@ ...@@ -121,20 +121,7 @@
</el-cascader> </el-cascader>
</el-form-item> </el-form-item>
<el-form-item label="馆藏介绍" :label-width="formLabelWidth"> <el-form-item label="馆藏介绍" :label-width="formLabelWidth">
<!-- <el-input <VueQuillEditor v-model="dialogForm.intro" />
type="textarea"
placeholder="请输入馆藏介绍"
v-model="dialogForm.intro"
maxlength="300"
show-word-limit
>
</el-input> -->
<quill-editor
ref="myQuillEditor"
v-model="dialogForm.intro"
:options="editorOption"
class=".editor"
/>
</el-form-item> </el-form-item>
<el-form-item label="关联文献" :label-width="formLabelWidth"> <el-form-item label="关联文献" :label-width="formLabelWidth">
<el-select <el-select
...@@ -203,7 +190,7 @@ ...@@ -203,7 +190,7 @@
<ManualUploader <ManualUploader
:files="faceImage" :files="faceImage"
:fileLimit="1" :fileLimit="1"
:fileSize="50" :fileSize="200"
listType="picture-card" listType="picture-card"
:fileType="['png', 'jpeg', 'jpg']" :fileType="['png', 'jpeg', 'jpg']"
ref="faceImage" ref="faceImage"
...@@ -213,7 +200,7 @@ ...@@ -213,7 +200,7 @@
<ManualUploader <ManualUploader
:files="images" :files="images"
:fileLimit="20" :fileLimit="20"
:fileSize="50" :fileSize="200"
listType="picture-card" listType="picture-card"
:fileType="['png', 'jpeg', 'jpg']" :fileType="['png', 'jpeg', 'jpg']"
ref="images" ref="images"
...@@ -270,12 +257,12 @@ import ManualUploader from "@/components/Uploader/ManualUploader.vue"; ...@@ -270,12 +257,12 @@ import ManualUploader from "@/components/Uploader/ManualUploader.vue";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import { uploadV1 } from "@/utils/file"; import { uploadV1 } from "@/utils/file";
import { deleteFiles } from "@/api/file"; import { deleteFiles } from "@/api/file";
import { quillEditor } from "vue-quill-editor"; import VueQuillEditor from "@/components/VueQuillEditor";
export default { export default {
name: "InfoEditDialog", name: "InfoEditDialog",
components: { components: {
ManualUploader, ManualUploader,
quillEditor, VueQuillEditor,
}, },
props: { props: {
visible: { visible: {
...@@ -354,24 +341,6 @@ export default { ...@@ -354,24 +341,6 @@ export default {
}, },
}, },
data() { data() {
// 工具栏配置
const toolbarOptions = [
["bold", "italic", "underline", "strike"], // 加粗 斜体 下划线 删除线 -----['bold', 'italic', 'underline', 'strike']
["blockquote", "code-block"], // 引用 代码块-----['blockquote', 'code-block']
[{ header: 1 }, { header: 2 }], // 1、2 级标题-----[{ header: 1 }, { header: 2 }]
[{ list: "ordered" }, { list: "bullet" }], // 有序、无序列表-----[{ list: 'ordered' }, { list: 'bullet' }]
[{ script: "sub" }, { script: "super" }], // 上标/下标-----[{ script: 'sub' }, { script: 'super' }]
[{ indent: "-1" }, { indent: "+1" }], // 缩进-----[{ indent: '-1' }, { indent: '+1' }]
[{ direction: "rtl" }], // 文本方向-----[{'direction': 'rtl'}]
[{ size: ["small", false, "large", "huge"] }], // 字体大小-----[{ size: ['small', false, 'large', 'huge'] }]
[{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题-----[{ header: [1, 2, 3, 4, 5, 6, false] }]
[{ color: [] }, { background: [] }], // 字体颜色、字体背景颜色-----[{ color: [] }, { background: [] }]
[{ font: [] }], // 字体种类-----[{ font: [] }]
[{ align: [] }], // 对齐方式-----[{ align: [] }]
["clean"], // 清除文本格式-----['clean']
// ["image", "video"], // 链接、图片、视频-----['link', 'image', 'video']
];
return { return {
dialogForm: { dialogForm: {
...this.form, ...this.form,
...@@ -406,17 +375,6 @@ export default { ...@@ -406,17 +375,6 @@ export default {
children: "children", children: "children",
checkStrictly: true, //单选选择任意一级选项 checkStrictly: true, //单选选择任意一级选项
}, },
//富文本编辑器配置
editorOption: {
// 富文本编辑器配置
modules: {
//工具栏定义的
toolbar: toolbarOptions,
},
//主题
theme: "snow",
placeholder: "请输入馆藏介绍",
},
}; };
}, },
async created() { async created() {
...@@ -459,13 +417,6 @@ export default { ...@@ -459,13 +417,6 @@ export default {
} }
}, 500); }, 500);
}, },
handlePreview({ type, file }) {
console.log(type, file);
},
handleRemove(file, fileList) {
console.log(file, fileList);
},
// 取消编辑 // 取消编辑
cancelForm() { cancelForm() {
this.$emit("handleClose"); this.$emit("handleClose");
...@@ -565,9 +516,15 @@ export default { ...@@ -565,9 +516,15 @@ export default {
params.literature = this.literatureValues.join(","); params.literature = this.literatureValues.join(",");
params.status = this.dialogForm.status ? 1 : 0; params.status = this.dialogForm.status ? 1 : 0;
// 处理年份 // 处理年份
params.years = params.years[params.years.length - 1]; if (params.years && params.years instanceof Array) {
// 处理质地TODO: params.years = params.years[params.years.length - 1];
params.textureType = params.textureType[params.textureType.length - 1]; }
// 处理质地
if (params.textureType instanceof Array) {
params.textureType =
params.textureType[params.textureType.length - 1].trim();
}
let res = await addCulturalRelic(params); let res = await addCulturalRelic(params);
if (res.code == 0) { if (res.code == 0) {
this.$message.success("提交成功!"); this.$message.success("提交成功!");
...@@ -634,10 +591,9 @@ export default { ...@@ -634,10 +591,9 @@ export default {
this.$emit("refresh"); this.$emit("refresh");
}, },
// // 下载已上传的图片文件 editorInput(e) {
// handleDownload({ type, file }) { console.log(e);
// console.log("handleDownload", type, file); },
// },
}, },
}; };
</script> </script>
...@@ -692,4 +648,4 @@ export default { ...@@ -692,4 +648,4 @@ export default {
.video-lists { .video-lists {
display: flex; display: flex;
} }
</style> </style>
\ No newline at end of file
...@@ -207,7 +207,7 @@ export default { ...@@ -207,7 +207,7 @@ export default {
// regionCode:'',//所属地(分号分隔的编号)——传当前用户的regionCode // regionCode:'',//所属地(分号分隔的编号)——传当前用户的regionCode
sourceWay: "", //来源方式 sourceWay: "", //来源方式
sayExplain: "", //讲解词文件。文件id sayExplain: "", //讲解词文件。文件id
status: 0, //上下架状态(0-下架,1-上架) status: 1, //上下架状态(0-下架,1-上架)
// flag3d:'',//是否有3D图片(字典值:1-有;0-无) // flag3d:'',//是否有3D图片(字典值:1-有;0-无)
themeWord: "", //主题词 themeWord: "", //主题词
url3d: "", //3durl链接 url3d: "", //3durl链接
......
...@@ -87,7 +87,7 @@ ...@@ -87,7 +87,7 @@
show-word-limit show-word-limit
> >
</el-input> --> </el-input> -->
<quill-editor <!-- <quill-editor
ref="myQuillEditor" ref="myQuillEditor"
v-model="currentData.intro" v-model="currentData.intro"
:options="editorOption" :options="editorOption"
...@@ -95,7 +95,9 @@ ...@@ -95,7 +95,9 @@
@focus="onEditorFocus($event)" @focus="onEditorFocus($event)"
@ready="onEditorReady($event)" @ready="onEditorReady($event)"
class=".editor" class=".editor"
/> /> -->
<VueQuillEditor v-model="currentData.intro" />
</el-col> </el-col>
</el-row> </el-row>
<el-collapse-transition> <el-collapse-transition>
...@@ -165,17 +167,12 @@ ...@@ -165,17 +167,12 @@
let euId = 1000; let euId = 1000;
import ManualUploader from "@/components/Uploader/ManualUploader.vue"; import ManualUploader from "@/components/Uploader/ManualUploader.vue";
import { getCulturalRelicList } from "@/api/culturalRelic"; import { getCulturalRelicList } from "@/api/culturalRelic";
import VueQuillEditor from "@/components/VueQuillEditor";
import "quill/dist/quill.core.css";
import "quill/dist/quill.snow.css";
import "quill/dist/quill.bubble.css";
import { quillEditor } from "vue-quill-editor";
export default { export default {
components: { components: {
ManualUploader, ManualUploader,
quillEditor, VueQuillEditor,
}, },
props: { props: {
exhibitionUnits: { exhibitionUnits: {
...@@ -220,23 +217,7 @@ export default { ...@@ -220,23 +217,7 @@ export default {
}, },
}, },
data() { data() {
// 工具栏配置
const toolbarOptions = [
["bold", "italic", "underline", "strike"], // 加粗 斜体 下划线 删除线 -----['bold', 'italic', 'underline', 'strike']
["blockquote", "code-block"], // 引用 代码块-----['blockquote', 'code-block']
[{ header: 1 }, { header: 2 }], // 1、2 级标题-----[{ header: 1 }, { header: 2 }]
[{ list: "ordered" }, { list: "bullet" }], // 有序、无序列表-----[{ list: 'ordered' }, { list: 'bullet' }]
[{ script: "sub" }, { script: "super" }], // 上标/下标-----[{ script: 'sub' }, { script: 'super' }]
[{ indent: "-1" }, { indent: "+1" }], // 缩进-----[{ indent: '-1' }, { indent: '+1' }]
[{ direction: "rtl" }], // 文本方向-----[{'direction': 'rtl'}]
[{ size: ["small", false, "large", "huge"] }], // 字体大小-----[{ size: ['small', false, 'large', 'huge'] }]
[{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题-----[{ header: [1, 2, 3, 4, 5, 6, false] }]
[{ color: [] }, { background: [] }], // 字体颜色、字体背景颜色-----[{ color: [] }, { background: [] }]
[{ font: [] }], // 字体种类-----[{ font: [] }]
[{ align: [] }], // 对齐方式-----[{ align: [] }]
["clean"], // 清除文本格式-----['clean']
["image", "video"], // 链接、图片、视频-----['link', 'image', 'video']
];
return { return {
treeData: [], treeData: [],
...@@ -246,18 +227,6 @@ export default { ...@@ -246,18 +227,6 @@ export default {
videosVo: [], videosVo: [],
currentData: {}, //当前点击的树节点 currentData: {}, //当前点击的树节点
// 富文本编辑器默认内容 // 富文本编辑器默认内容
content: "",
//富文本编辑器配置
editorOption: {
// 富文本编辑器配置
modules: {
//工具栏定义的
toolbar: toolbarOptions,
},
//主题
theme: "snow",
placeholder: "请输入单元介绍",
},
}; };
}, },
methods: { methods: {
...@@ -553,84 +522,5 @@ export default { ...@@ -553,84 +522,5 @@ export default {
} }
</style> </style>
<style lang='scss' >
// 富文本编辑器汉化
.editor {
line-height: normal !important;
height: 500px;
}
.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 {
height: 40px;
}
.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>
...@@ -83,21 +83,7 @@ ...@@ -83,21 +83,7 @@
</el-form-item> </el-form-item>
<el-form-item label="展览介绍" :label-width="formLabelWidth"> <el-form-item label="展览介绍" :label-width="formLabelWidth">
<!-- <el-input <VueQuillEditor v-model="dialogForm.intro" />
type="textarea"
placeholder="请输入展览介绍"
v-model="dialogForm.intro"
maxlength="1000"
show-word-limit
rows="6"
>
</el-input> -->
<quill-editor
ref="myQuillEditor"
v-model="dialogForm.intro"
:options="editorOption"
class=".editor"
/>
</el-form-item> </el-form-item>
<el-form-item label="关键词" :label-width="formLabelWidth"> <el-form-item label="关键词" :label-width="formLabelWidth">
<el-input <el-input
...@@ -247,13 +233,14 @@ import ExhibitionUnit from "./ExhibitionUnit.vue"; ...@@ -247,13 +233,14 @@ import ExhibitionUnit from "./ExhibitionUnit.vue";
import { upload, uploadV1 } from "@/utils/file"; import { upload, uploadV1 } from "@/utils/file";
import { themeTypeOptions } from "../contants"; import { themeTypeOptions } from "../contants";
import { deleteFiles } from "@/api/file"; import { deleteFiles } from "@/api/file";
import { quillEditor } from "vue-quill-editor"; import VueQuillEditor from "@/components/VueQuillEditor";
export default { export default {
name: "InfoEditDialog", name: "InfoEditDialog",
components: { components: {
ManualUploader, ManualUploader,
ExhibitionUnit, ExhibitionUnit,
quillEditor, VueQuillEditor
// PageSelect, // PageSelect,
}, },
props: { props: {
...@@ -380,24 +367,6 @@ export default { ...@@ -380,24 +367,6 @@ export default {
}, },
}, },
data() { data() {
// 工具栏配置
const toolbarOptions = [
["bold", "italic", "underline", "strike"], // 加粗 斜体 下划线 删除线 -----['bold', 'italic', 'underline', 'strike']
["blockquote", "code-block"], // 引用 代码块-----['blockquote', 'code-block']
[{ header: 1 }, { header: 2 }], // 1、2 级标题-----[{ header: 1 }, { header: 2 }]
[{ list: "ordered" }, { list: "bullet" }], // 有序、无序列表-----[{ list: 'ordered' }, { list: 'bullet' }]
[{ script: "sub" }, { script: "super" }], // 上标/下标-----[{ script: 'sub' }, { script: 'super' }]
[{ indent: "-1" }, { indent: "+1" }], // 缩进-----[{ indent: '-1' }, { indent: '+1' }]
[{ direction: "rtl" }], // 文本方向-----[{'direction': 'rtl'}]
[{ size: ["small", false, "large", "huge"] }], // 字体大小-----[{ size: ['small', false, 'large', 'huge'] }]
[{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题-----[{ header: [1, 2, 3, 4, 5, 6, false] }]
[{ color: [] }, { background: [] }], // 字体颜色、字体背景颜色-----[{ color: [] }, { background: [] }]
[{ font: [] }], // 字体种类-----[{ font: [] }]
[{ align: [] }], // 对齐方式-----[{ align: [] }]
["clean"], // 清除文本格式-----['clean']
// ["image", "video"], // 链接、图片、视频-----['link', 'image', 'video']
];
return { return {
dialogForm: { dialogForm: {
...this.form, ...this.form,
...@@ -418,17 +387,6 @@ export default { ...@@ -418,17 +387,6 @@ export default {
videos: [], videos: [],
audios: [], audios: [],
pageSelectUrl: "/api/bizCulturalRelic/listByPage", pageSelectUrl: "/api/bizCulturalRelic/listByPage",
//富文本编辑器配置
editorOption: {
// 富文本编辑器配置
modules: {
//工具栏定义的
toolbar: toolbarOptions,
},
//主题
theme: "snow",
placeholder: "请输入展览介绍",
},
orgTreeData: [], orgTreeData: [],
optionProps: { optionProps: {
value: "id", value: "id",
......
...@@ -168,7 +168,7 @@ export default { ...@@ -168,7 +168,7 @@ export default {
themeType: "1", //模板主题--前端枚举 themeType: "1", //模板主题--前端枚举
literature: "", //关联文献。id1,id2,id3--接口查询 literature: "", //关联文献。id1,id2,id3--接口查询
remark: "", //备注 remark: "", //备注
status: false, //上下架状态(0-下架,1-上架) status: 1, //上下架状态(0-下架,1-上架)
faceImage: "", // 封面(图片1张) faceImage: "", // 封面(图片1张)
images: "", //展览图片 images: "", //展览图片
videos: "", //展览视频 videos: "", //展览视频
...@@ -314,7 +314,7 @@ export default { ...@@ -314,7 +314,7 @@ export default {
handleClose() { handleClose() {
this.editDialogVisible = false; this.editDialogVisible = false;
this.form = { this.form = {
status: 0, status: 1,
}; };
}, },
// 关闭预览图片 // 关闭预览图片
......
...@@ -140,7 +140,7 @@ export default { ...@@ -140,7 +140,7 @@ export default {
return { return {
dialogForm: {}, dialogForm: {},
formLabelWidth: "100px", formLabelWidth: "100px",
status: false, status: true,
files: [], //文献文件 files: [], //文献文件
dialogVisible: false, dialogVisible: false,
}; };
......
...@@ -86,7 +86,7 @@ ...@@ -86,7 +86,7 @@
authors: "", //作者 authors: "", //作者
date: "", //日期(出版年份、发布日期) date: "", //日期(出版年份、发布日期)
source: "", //文献来源 source: "", //文献来源
status: false, //上下架状态 status: 1, //上下架状态
remark: "", //备注 remark: "", //备注
}, },
}; };
...@@ -218,7 +218,7 @@ ...@@ -218,7 +218,7 @@
handleClose() { handleClose() {
this.drawerVisible = false; this.drawerVisible = false;
this.form = { this.form = {
status: true, status: 1,
}; };
}, },
}, },
......
...@@ -78,20 +78,7 @@ ...@@ -78,20 +78,7 @@
/> />
</el-form-item> </el-form-item>
<el-form-item label="简介" :label-width="formLabelWidth"> <el-form-item label="简介" :label-width="formLabelWidth">
<!-- <el-input <VueQuillEditor v-model="dialogForm.intro" />
type="textarea"
placeholder="请输入博物馆简介"
v-model="dialogForm.intro"
maxlength="600"
show-word-limit
>
</el-input> -->
<quill-editor
ref="myQuillEditor"
v-model="dialogForm.intro"
:options="editorOption"
class=".editor"
/>
</el-form-item> </el-form-item>
</el-form> </el-form>
</div> </div>
...@@ -110,13 +97,13 @@ import ManualUploader from "@/components/Uploader/ManualUploader.vue"; ...@@ -110,13 +97,13 @@ import ManualUploader from "@/components/Uploader/ManualUploader.vue";
import { mapGetters } from "vuex"; import { mapGetters } from "vuex";
import { uploadV1 } from "@/utils/file"; import { uploadV1 } from "@/utils/file";
import { deleteFiles } from "@/api/file"; import { deleteFiles } from "@/api/file";
import { quillEditor } from "vue-quill-editor"; import VueQuillEditor from "@/components/VueQuillEditor";
export default { export default {
name: "InfoEditDialog", name: "InfoEditDialog",
components: { components: {
ManualUploader, ManualUploader,
quillEditor VueQuillEditor,
}, },
props: { props: {
visible: { visible: {
...@@ -197,23 +184,6 @@ export default { ...@@ -197,23 +184,6 @@ export default {
}, },
}, },
data() { data() {
// 工具栏配置
const toolbarOptions = [
["bold", "italic", "underline", "strike"], // 加粗 斜体 下划线 删除线 -----['bold', 'italic', 'underline', 'strike']
["blockquote", "code-block"], // 引用 代码块-----['blockquote', 'code-block']
[{ header: 1 }, { header: 2 }], // 1、2 级标题-----[{ header: 1 }, { header: 2 }]
[{ list: "ordered" }, { list: "bullet" }], // 有序、无序列表-----[{ list: 'ordered' }, { list: 'bullet' }]
[{ script: "sub" }, { script: "super" }], // 上标/下标-----[{ script: 'sub' }, { script: 'super' }]
[{ indent: "-1" }, { indent: "+1" }], // 缩进-----[{ indent: '-1' }, { indent: '+1' }]
[{ direction: "rtl" }], // 文本方向-----[{'direction': 'rtl'}]
[{ size: ["small", false, "large", "huge"] }], // 字体大小-----[{ size: ['small', false, 'large', 'huge'] }]
[{ header: [1, 2, 3, 4, 5, 6, false] }], // 标题-----[{ header: [1, 2, 3, 4, 5, 6, false] }]
[{ color: [] }, { background: [] }], // 字体颜色、字体背景颜色-----[{ color: [] }, { background: [] }]
[{ font: [] }], // 字体种类-----[{ font: [] }]
[{ align: [] }], // 对齐方式-----[{ align: [] }]
["clean"], // 清除文本格式-----['clean']
// ["image", "video"], // 链接、图片、视频-----['link', 'image', 'video']
];
return { return {
dialogForm: {}, dialogForm: {},
formLabelWidth: "100px", formLabelWidth: "100px",
...@@ -230,21 +200,11 @@ export default { ...@@ -230,21 +200,11 @@ export default {
checkStrictly: true, //单选选择任意一级选项 checkStrictly: true, //单选选择任意一级选项
}, },
regionTree: [], regionTree: [],
status: false, status: true,
pidModalKey: 0, pidModalKey: 0,
regionCodeModalKey: 0, regionCodeModalKey: 0,
faceImage: [], faceImage: [],
parentPid: null, //博物馆根节点id parentPid: null, //博物馆根节点id
editorOption: {
// 富文本编辑器配置
modules: {
//工具栏定义的
toolbar: toolbarOptions,
},
//主题
theme: "snow",
placeholder: "请输入单元介绍",
},
}; };
}, },
methods: { methods: {
......
<template>
<el-dialog
:visible="dialogVisible"
width="30%"
style="height: 98%"
:before-close="handleClose"
top="5vh"
lock-scroll
>
<div class="title" slot="title">
<div class="divider"></div>
<div class="label">修改角色数据权限</div>
</div>
<div class="dialog-content">
<el-form :model="dialogForm" class="basic-info">
<el-form-item label="数据范围" :label-width="formLabelWidth">
<el-select
v-model="dataScopeData"
placeholder="请选择"
style="width: 100%"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label="选择自定义部门"
:label-width="formLabelWidth"
v-if="dataScopeData == 2"
>
<el-cascader
style="width: 100%"
v-model="depts"
:options="orgTreeData"
:props="optionProps"
placeholder="请选择部门"
>
</el-cascader>
</el-form-item>
</el-form>
</div>
<div class="dialog-footer">
<el-button @click="cancelForm">取 消</el-button>
<el-button type="primary" @click="handleSubmit"
>保存<i class="el-icon-s-promotion" style="margin-left: 5px"></i
></el-button>
</div>
</el-dialog>
</template>
<script>
import { bindDept } from "@/api/user";
export default {
name: "DataEditDialog",
props: {
visible: {
type: Boolean,
default: false,
},
id: {
type: String,
},
dataScope: {
type: Number,
default: 0,
},
},
watch: {
visible: {
handler: function (value) {
this.dialogVisible = value;
this.dataScopeData = this.dataScope;
},
deep: true,
immediate: true,
},
dataScopeData(value) {
// 除了自定义部门之外,其余的自定义部门都给清空
if (value != 2) {
this.depts = [];
}
},
},
data() {
return {
dialogForm: {},
formLabelWidth: "120px",
dialogVisible: false,
options: [
{ label: "所有", value: 1 },
{ label: "自定义部门", value: 2 },
{ label: "本部门及以下部门", value: 3 },
{ label: "本部门", value: 4 },
{ label: "自己", value: 5 },
],
orgTreeData: [],
optionProps: {
multiple: true,
value: "id",
label: "name",
children: "children",
checkStrictly: true, //单选选择任意一级选项
},
depts: [], //自定义部门
dataScopeData: null,
};
},
created() {
this.$store.dispatch("org/getMuseumTreeData", false).then((res) => {
this.orgTreeData = res[0].children; //去掉根节点的文旅厅
});
},
methods: {
// 取消编辑
cancelForm() {
this.$emit("handleCloseDataEdit");
},
async handleSubmit() {
console.log(this.id);
// return;
// let checkedIds =this.$refs.tree.getCheckedKeys()
let depts = [];
this.depts.map((item) => {
depts = [...item, ...depts];
});
const params = {
id: this.id,
dataScope: this.dataScopeData,
depts,
};
// return;
let res = await bindDept(params);
if (res.code == 0) {
this.$message.success("保存成功!");
this.reload();
}
},
reload() {
this.$emit("refresh");
this.$emit("handleCloseDataEdit");
this.dataScopeData = null;
},
handleClose(done) {
this.$confirm("确认关闭?")
.then((_) => {
done();
this.$emit("handleCloseDataEdit");
})
.catch((_) => {});
},
},
};
</script>
<style lang='scss' scoped>
.title {
display: flex;
margin-bottom: 16px;
.divider {
width: 8px;
border-left: 4px solid #409eff;
margin-right: 8px;
}
.label {
font-weight: bold;
}
}
.dialog-content {
padding: 0 32px;
display: flex;
.basic-info {
flex: 1;
margin-right: 48px;
}
}
.dialog-footer {
display: flex;
justify-content: flex-end;
}
</style>
\ No newline at end of file
...@@ -86,7 +86,7 @@ export default { ...@@ -86,7 +86,7 @@ export default {
watch: { watch: {
form: { form: {
handler: function (value) { handler: function (value) {
debugger // debugger
let that = this; let that = this;
that.dialogForm = JSON.parse(JSON.stringify(value)); that.dialogForm = JSON.parse(JSON.stringify(value));
// 编辑状态 // 编辑状态
...@@ -114,7 +114,7 @@ export default { ...@@ -114,7 +114,7 @@ export default {
return { return {
dialogForm: {}, dialogForm: {},
formLabelWidth: "100px", formLabelWidth: "100px",
status: false, status: true,
files: [], //文献文件 files: [], //文献文件
dialogVisible: false, dialogVisible: false,
// permissionTree: [], // permissionTree: [],
...@@ -126,18 +126,8 @@ export default { ...@@ -126,18 +126,8 @@ export default {
}, },
}; };
}, },
// async created() {
// console.log(this.permissionTree);
// // console.log(res);
// },
methods: { methods: {
handlePreview({ type, file }) {
console.log(type, file);
},
handleRemove(file, fileList) {
console.log(file, fileList);
},
// 取消编辑 // 取消编辑
cancelForm() { cancelForm() {
this.$emit("handleClose"); this.$emit("handleClose");
...@@ -211,10 +201,9 @@ export default { ...@@ -211,10 +201,9 @@ export default {
}, },
async getDefaultTree() { async getDefaultTree() {
// debugger
let res = await getPermissionTreeAll(); let res = await getPermissionTreeAll();
// this.permissionTree = res.data;
this.$set(this.dialogForm, "permissionRespNodes", res.data); this.$set(this.dialogForm, "permissionRespNodes", res.data);
// debugger
}, },
}, },
}; };
......
...@@ -46,7 +46,7 @@ export const operations = [ ...@@ -46,7 +46,7 @@ export const operations = [
title: '编辑' title: '编辑'
}, },
{ {
type: 'edit', type: 'dataPermission',
title: '数据权限' title: '数据权限'
}, },
{ {
......
...@@ -52,6 +52,13 @@ ...@@ -52,6 +52,13 @@
@handleClose="handleClose" @handleClose="handleClose"
@refresh="loadData" @refresh="loadData"
/> />
<DataEditDialog
:visible="dataEditDialog"
:id="form.id"
:dataScope="form.dataScope"
@handleCloseDataEdit="handleCloseDataEdit"
@refresh="loadData"
/>
</div> </div>
</template> </template>
...@@ -59,8 +66,9 @@ ...@@ -59,8 +66,9 @@
import TablePage from "@/components/Table/TablePage.vue"; import TablePage from "@/components/Table/TablePage.vue";
import TableOperation from "@/components/Table/TableOperation.vue"; import TableOperation from "@/components/Table/TableOperation.vue";
import { title, operates, operations } from "./config"; import { title, operates, operations } from "./config";
import { getRoleList, getRoleById } from "@/api/user"; import { getRoleList, getRoleById, deleteRole,upadateRole } from "@/api/user";
import InfoEditDialog from "./components/InfoEditDialog"; import InfoEditDialog from "./components/InfoEditDialog";
import DataEditDialog from "./components/DataEditDialog";
import SearchBar from "@/components/SearchBar"; import SearchBar from "@/components/SearchBar";
export default { export default {
...@@ -68,6 +76,7 @@ export default { ...@@ -68,6 +76,7 @@ export default {
TablePage, TablePage,
TableOperation, TableOperation,
InfoEditDialog, InfoEditDialog,
DataEditDialog,
SearchBar, SearchBar,
}, },
data() { data() {
...@@ -106,11 +115,12 @@ export default { ...@@ -106,11 +115,12 @@ export default {
], ],
drawerVisible: false, drawerVisible: false,
form: { form: {
name:'', name: "",
remark:'', remark: "",
status: 0, status: 1,
permissionRespNodes:[] permissionRespNodes: [],
}, },
dataEditDialog: false, //编辑数据的对话框
}; };
}, },
...@@ -134,6 +144,7 @@ export default { ...@@ -134,6 +144,7 @@ export default {
}; };
}, },
}, },
mounted() { mounted() {
this.loadData(); this.loadData();
}, },
...@@ -173,31 +184,38 @@ export default { ...@@ -173,31 +184,38 @@ export default {
case "add": case "add":
this.drawerVisible = true; this.drawerVisible = true;
this.form = { this.form = {
status: 0, status: 1,
permissionRespNodes:[] permissionRespNodes: null,
}; };
break; break;
case "edit": case "edit":
const { id } = row; const { id } = row;
let res = await getRoleById(id); let res = await getRoleById(id);
this.form = res.data; this.form = res.data;
console.log('this.form.permissionRespNodes',this.form.permissionRespNodes);
this.drawerVisible = true; this.drawerVisible = true;
break; break;
case "delete": case "delete":
let deleteRes = await deleteRole(row.id);
if (deleteRes.code == 0) {
this.$message.success("刪除成功!");
this.loadData();
}
break;
case "dataPermission":
this.form =row
this.dataEditDialog = true;
break; break;
} }
}, },
async handleChangeStatus(row) { async handleChangeStatus(row) {
console.log("status", row);
const { status } = row; const { status } = row;
let newStatus = status === "0" ? "1" : "0"; let newStatus = status === "0" ? "1" : "0";
const params = { const params = {
...row, ...row,
status: newStatus, status: newStatus,
}; };
let res = await editLiterature(params); let res = await upadateRole(params);
if (res.code == 0) { if (res.code == 0) {
this.loadData(); this.loadData();
this.$message.success("修改成功!"); this.$message.success("修改成功!");
...@@ -220,10 +238,15 @@ export default { ...@@ -220,10 +238,15 @@ export default {
handleClose() { handleClose() {
this.drawerVisible = false; this.drawerVisible = false;
this.form = { this.form = {
status: 0, status: 1,
permissionRespNodes:[] permissionRespNodes: [],
}; };
}, },
handleCloseDataEdit() {
this.dataEditDialog = false;
this.form = {};
},
}, },
}; };
</script> </script>
......
...@@ -210,7 +210,7 @@ export default { ...@@ -210,7 +210,7 @@ export default {
return { return {
dialogForm: {}, dialogForm: {},
formLabelWidth: "100px", formLabelWidth: "100px",
status: false, status: true,
files: [], //文献文件 files: [], //文献文件
dialogVisible: false, dialogVisible: false,
optionProps: { optionProps: {
...@@ -256,7 +256,6 @@ export default { ...@@ -256,7 +256,6 @@ export default {
let params = JSON.parse(JSON.stringify(this.dialogForm)); let params = JSON.parse(JSON.stringify(this.dialogForm));
// 修改状态 // 修改状态
params.status = this.status ? 1 : 0; params.status = this.status ? 1 : 0;
console.log(22, params);
// return; // return;
// 处理馆藏单位 // 处理馆藏单位
if (params.deptId instanceof Array) { if (params.deptId instanceof Array) {
......
...@@ -138,7 +138,7 @@ export default { ...@@ -138,7 +138,7 @@ export default {
realName: "", //真实姓名 realName: "", //真实姓名
deptId: "", deptId: "",
// sex:1,//1-男性 2-女性 // sex:1,//1-男性 2-女性
status: 0, //启用状态 status: 1, //启用状态
}, },
dialogVisible: false, dialogVisible: false,
}; };
...@@ -226,7 +226,7 @@ export default { ...@@ -226,7 +226,7 @@ export default {
handleClose() { handleClose() {
this.dialogVisible = false; this.dialogVisible = false;
this.form = { this.form = {
status: 0, status: 1,
}; };
}, },
}, },
......
...@@ -195,7 +195,7 @@ export default { ...@@ -195,7 +195,7 @@ export default {
checkStrictly: true, //单选选择任意一级选项 checkStrictly: true, //单选选择任意一级选项
}, },
regionTree: [], regionTree: [],
status: false, status: true,
pidModalKey: 0, pidModalKey: 0,
regionCodeModalKey: 0, regionCodeModalKey: 0,
faceImage: [], faceImage: [],
......
...@@ -127,7 +127,7 @@ export default { ...@@ -127,7 +127,7 @@ export default {
name: "", //名称 name: "", //名称
deptId: "", //所属博物馆 deptId: "", //所属博物馆
regionCode: "", //所属地code regionCode: "", //所属地code
status: false, //上下架状态 status: true, //上下架状态
faceImage: "", //封面 faceImage: "", //封面
url: "", //链接 url: "", //链接
intro: "", //简介 intro: "", //简介
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论