Commit 01deb1a7 authored by “yiyousong”'s avatar “yiyousong”

feat:添加事项文件夹

parent 87e08381
// 材料api // 材料api
import request from '@/utils/request' import request from "@/utils/request";
// 获取材料列表 // 获取材料列表
export const getMaterialsList = (data) => { export const getMaterialsList = (data) => {
return request({ return request({
url: `/sampleform/matter/datum/list`, url: `/sampleform/matter/datum/list`,
method: "post", method: "post",
data, data,
}); });
}; };
// 保存材料 // 保存材料
export const saveMaterials = (data) => { export const saveMaterials = (data) => {
return request({ return request({
url: `/sampleform/matter/datum/save`, url: `/sampleform/matter/datum/save`,
method: "post", method: "post",
data, data,
}); });
}; };
// 删除 // 删除
export const delMaterials = (params) => { export const delMaterials = (params) => {
return request({ return request({
url: `/sampleform/matter/datum/delete`, url: `/sampleform/matter/datum/delete`,
method: "get", method: "get",
params, params,
}); });
}; };
// 推荐材料 // 推荐材料
export const recommendMaterials = (params) => { export const recommendMaterials = (params) => {
return request({ return request({
url: `/sampleform/matter/datum/recommend`, url: `/sampleform/matter/datum/recommend`,
method: "get", method: "get",
params, params,
}); });
}; };
// 加入公共材料 // 加入公共材料
export const addPubdatum = (params) => { export const addPubdatum = (params) => {
return request({ return request({
url: `/sampleform/matter/datum/addPubdatum`, url: `/sampleform/matter/datum/addPubdatum`,
method: "get", method: "get",
params, params,
}); });
};
// 材料添加至事项文件夹(分类)
export const saveDatumToCategory = (data) => {
return request({
url: `/sampleform/datum/category/save`,
method: "post",
data,
});
};
// 材料批量添加至事项文件夹(分类)
export const batchSaveDatumToCategory = (data) => {
return request({
url: `/sampleform/datum/category/batchSave`,
method: "post",
data,
});
}; };
...@@ -76,3 +76,21 @@ export const addMatterFolder = (data) => { ...@@ -76,3 +76,21 @@ export const addMatterFolder = (data) => {
data, data,
}); });
}; };
// 获取事项文件夹(分类)列表
export const getMatterFolderList = (data) => {
return request({
url: `/sampleform/matter/category/list`,
method: "post",
data,
});
};
// 删除事项文件夹(分类)
export const delMatterFolder = (params) => {
return request({
url: `/sampleform/matter/category/delete`,
method: "get",
params,
});
};
/* Logo 字体 */
@font-face {
font-family: "iconfont logo";
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834');
src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'),
url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg');
}
.logo {
font-family: "iconfont logo";
font-size: 160px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* tabs */
.nav-tabs {
position: relative;
}
.nav-tabs .nav-more {
position: absolute;
right: 0;
bottom: 0;
height: 42px;
line-height: 42px;
color: #666;
}
#tabs {
border-bottom: 1px solid #eee;
}
#tabs li {
cursor: pointer;
width: 100px;
height: 40px;
line-height: 40px;
text-align: center;
font-size: 16px;
border-bottom: 2px solid transparent;
position: relative;
z-index: 1;
margin-bottom: -1px;
color: #666;
}
#tabs .active {
border-bottom-color: #f00;
color: #222;
}
.tab-container .content {
display: none;
}
/* 页面布局 */
.main {
padding: 30px 100px;
width: 960px;
margin: 0 auto;
}
.main .logo {
color: #333;
text-align: left;
margin-bottom: 30px;
line-height: 1;
height: 110px;
margin-top: -50px;
overflow: hidden;
*zoom: 1;
}
.main .logo a {
font-size: 160px;
color: #333;
}
.helps {
margin-top: 40px;
}
.helps pre {
padding: 20px;
margin: 10px 0;
border: solid 1px #e7e1cd;
background-color: #fffdef;
overflow: auto;
}
.icon_lists {
width: 100% !important;
overflow: hidden;
*zoom: 1;
}
.icon_lists li {
width: 100px;
margin-bottom: 10px;
margin-right: 20px;
text-align: center;
list-style: none !important;
cursor: default;
}
.icon_lists li .code-name {
line-height: 1.2;
}
.icon_lists .icon {
display: block;
height: 100px;
line-height: 100px;
font-size: 42px;
margin: 10px auto;
color: #333;
-webkit-transition: font-size 0.25s linear, width 0.25s linear;
-moz-transition: font-size 0.25s linear, width 0.25s linear;
transition: font-size 0.25s linear, width 0.25s linear;
}
.icon_lists .icon:hover {
font-size: 100px;
}
.icon_lists .svg-icon {
/* 通过设置 font-size 来改变图标大小 */
width: 1em;
/* 图标和文字相邻时,垂直对齐 */
vertical-align: -0.15em;
/* 通过设置 color 来改变 SVG 的颜色/fill */
fill: currentColor;
/* path 和 stroke 溢出 viewBox 部分在 IE 下会显示
normalize.css 中也包含这行 */
overflow: hidden;
}
.icon_lists li .name,
.icon_lists li .code-name {
color: #666;
}
/* markdown 样式 */
.markdown {
color: #666;
font-size: 14px;
line-height: 1.8;
}
.highlight {
line-height: 1.5;
}
.markdown img {
vertical-align: middle;
max-width: 100%;
}
.markdown h1 {
color: #404040;
font-weight: 500;
line-height: 40px;
margin-bottom: 24px;
}
.markdown h2,
.markdown h3,
.markdown h4,
.markdown h5,
.markdown h6 {
color: #404040;
margin: 1.6em 0 0.6em 0;
font-weight: 500;
clear: both;
}
.markdown h1 {
font-size: 28px;
}
.markdown h2 {
font-size: 22px;
}
.markdown h3 {
font-size: 16px;
}
.markdown h4 {
font-size: 14px;
}
.markdown h5 {
font-size: 12px;
}
.markdown h6 {
font-size: 12px;
}
.markdown hr {
height: 1px;
border: 0;
background: #e9e9e9;
margin: 16px 0;
clear: both;
}
.markdown p {
margin: 1em 0;
}
.markdown>p,
.markdown>blockquote,
.markdown>.highlight,
.markdown>ol,
.markdown>ul {
width: 80%;
}
.markdown ul>li {
list-style: circle;
}
.markdown>ul li,
.markdown blockquote ul>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown>ul li p,
.markdown>ol li p {
margin: 0.6em 0;
}
.markdown ol>li {
list-style: decimal;
}
.markdown>ol li,
.markdown blockquote ol>li {
margin-left: 20px;
padding-left: 4px;
}
.markdown code {
margin: 0 3px;
padding: 0 5px;
background: #eee;
border-radius: 3px;
}
.markdown strong,
.markdown b {
font-weight: 600;
}
.markdown>table {
border-collapse: collapse;
border-spacing: 0px;
empty-cells: show;
border: 1px solid #e9e9e9;
width: 95%;
margin-bottom: 24px;
}
.markdown>table th {
white-space: nowrap;
color: #333;
font-weight: 600;
}
.markdown>table th,
.markdown>table td {
border: 1px solid #e9e9e9;
padding: 8px 16px;
text-align: left;
}
.markdown>table th {
background: #F7F7F7;
}
.markdown blockquote {
font-size: 90%;
color: #999;
border-left: 4px solid #e9e9e9;
padding-left: 0.8em;
margin: 1em 0;
}
.markdown blockquote p {
margin: 0;
}
.markdown .anchor {
opacity: 0;
transition: opacity 0.3s ease;
margin-left: 8px;
}
.markdown .waiting {
color: #ccc;
}
.markdown h1:hover .anchor,
.markdown h2:hover .anchor,
.markdown h3:hover .anchor,
.markdown h4:hover .anchor,
.markdown h5:hover .anchor,
.markdown h6:hover .anchor {
opacity: 1;
display: inline-block;
}
.markdown>br,
.markdown>p>br {
clear: both;
}
.hljs {
display: block;
background: white;
padding: 0.5em;
color: #333333;
overflow-x: auto;
}
.hljs-comment,
.hljs-meta {
color: #969896;
}
.hljs-string,
.hljs-variable,
.hljs-template-variable,
.hljs-strong,
.hljs-emphasis,
.hljs-quote {
color: #df5000;
}
.hljs-keyword,
.hljs-selector-tag,
.hljs-type {
color: #a71d5d;
}
.hljs-literal,
.hljs-symbol,
.hljs-bullet,
.hljs-attribute {
color: #0086b3;
}
.hljs-section,
.hljs-name {
color: #63a35c;
}
.hljs-tag {
color: #333333;
}
.hljs-title,
.hljs-attr,
.hljs-selector-id,
.hljs-selector-class,
.hljs-selector-attr,
.hljs-selector-pseudo {
color: #795da3;
}
.hljs-addition {
color: #55a532;
background-color: #eaffea;
}
.hljs-deletion {
color: #bd2c00;
background-color: #ffecec;
}
.hljs-link {
text-decoration: underline;
}
/* 代码高亮 */
/* PrismJS 1.15.0
https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */
/**
* prism.js default theme for JavaScript, CSS and HTML
* Based on dabblet (http://dabblet.com)
* @author Lea Verou
*/
code[class*="language-"],
pre[class*="language-"] {
color: black;
background: none;
text-shadow: 0 1px white;
font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace;
text-align: left;
white-space: pre;
word-spacing: normal;
word-break: normal;
word-wrap: normal;
line-height: 1.5;
-moz-tab-size: 4;
-o-tab-size: 4;
tab-size: 4;
-webkit-hyphens: none;
-moz-hyphens: none;
-ms-hyphens: none;
hyphens: none;
}
pre[class*="language-"]::-moz-selection,
pre[class*="language-"] ::-moz-selection,
code[class*="language-"]::-moz-selection,
code[class*="language-"] ::-moz-selection {
text-shadow: none;
background: #b3d4fc;
}
pre[class*="language-"]::selection,
pre[class*="language-"] ::selection,
code[class*="language-"]::selection,
code[class*="language-"] ::selection {
text-shadow: none;
background: #b3d4fc;
}
@media print {
code[class*="language-"],
pre[class*="language-"] {
text-shadow: none;
}
}
/* Code blocks */
pre[class*="language-"] {
padding: 1em;
margin: .5em 0;
overflow: auto;
}
:not(pre)>code[class*="language-"],
pre[class*="language-"] {
background: #f5f2f0;
}
/* Inline code */
:not(pre)>code[class*="language-"] {
padding: .1em;
border-radius: .3em;
white-space: normal;
}
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
color: slategray;
}
.token.punctuation {
color: #999;
}
.namespace {
opacity: .7;
}
.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
color: #905;
}
.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
color: #690;
}
.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
color: #9a6e3a;
background: hsla(0, 0%, 100%, .5);
}
.token.atrule,
.token.attr-value,
.token.keyword {
color: #07a;
}
.token.function,
.token.class-name {
color: #DD4A68;
}
.token.regex,
.token.important,
.token.variable {
color: #e90;
}
.token.important,
.token.bold {
font-weight: bold;
}
.token.italic {
font-style: italic;
}
.token.entity {
cursor: help;
}
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<title>iconfont Demo</title>
<link rel="shortcut icon" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg" type="image/x-icon"/>
<link rel="icon" type="image/svg+xml" href="//img.alicdn.com/imgextra/i4/O1CN01Z5paLz1O0zuCC7osS_!!6000000001644-55-tps-83-82.svg"/>
<link rel="stylesheet" href="https://g.alicdn.com/thx/cube/1.3.2/cube.min.css">
<link rel="stylesheet" href="demo.css">
<link rel="stylesheet" href="iconfont.css">
<script src="iconfont.js"></script>
<!-- jQuery -->
<script src="https://a1.alicdn.com/oss/uploads/2018/12/26/7bfddb60-08e8-11e9-9b04-53e73bb6408b.js"></script>
<!-- 代码高亮 -->
<script src="https://a1.alicdn.com/oss/uploads/2018/12/26/a3f714d0-08e6-11e9-8a15-ebf944d7534c.js"></script>
<style>
.main .logo {
margin-top: 0;
height: auto;
}
.main .logo a {
display: flex;
align-items: center;
}
.main .logo .sub-title {
margin-left: 0.5em;
font-size: 22px;
color: #fff;
background: linear-gradient(-45deg, #3967FF, #B500FE);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
}
</style>
</head>
<body>
<div class="main">
<h1 class="logo"><a href="https://www.iconfont.cn/" title="iconfont 首页" target="_blank">
<img width="200" src="https://img.alicdn.com/imgextra/i3/O1CN01Mn65HV1FfSEzR6DKv_!!6000000000514-55-tps-228-59.svg">
</a></h1>
<div class="nav-tabs">
<ul id="tabs" class="dib-box">
<li class="dib active"><span>Unicode</span></li>
<li class="dib"><span>Font class</span></li>
<li class="dib"><span>Symbol</span></li>
</ul>
<a href="https://www.iconfont.cn/manage/index?manage_type=myprojects&projectId=4136233" target="_blank" class="nav-more">查看项目</a>
</div>
<div class="tab-container">
<div class="content unicode" style="display: block;">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont">&#xeac5;</span>
<div class="name">24gf-folderOpen</div>
<div class="code-name">&amp;#xeac5;</div>
</li>
</ul>
<div class="article markdown">
<h2 id="unicode-">Unicode 引用</h2>
<hr>
<p>Unicode 是字体在网页端最原始的应用方式,特点是:</p>
<ul>
<li>支持按字体的方式去动态调整图标大小,颜色等等。</li>
<li>默认情况下不支持多色,直接添加多色图标会自动去色。</li>
</ul>
<blockquote>
<p>注意:新版 iconfont 支持两种方式引用多色图标:SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)</p>
</blockquote>
<p>Unicode 使用步骤如下:</p>
<h3 id="-font-face">第一步:拷贝项目下面生成的 <code>@font-face</code></h3>
<pre><code class="language-css"
>@font-face {
font-family: 'iconfont';
src: url('iconfont.woff2?t=1687661668952') format('woff2'),
url('iconfont.woff?t=1687661668952') format('woff'),
url('iconfont.ttf?t=1687661668952') format('truetype');
}
</code></pre>
<h3 id="-iconfont-">第二步:定义使用 iconfont 的样式</h3>
<pre><code class="language-css"
>.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
</code></pre>
<h3 id="-">第三步:挑选相应图标并获取字体编码,应用于页面</h3>
<pre>
<code class="language-html"
>&lt;span class="iconfont"&gt;&amp;#x33;&lt;/span&gt;
</code></pre>
<blockquote>
<p>"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p>
</blockquote>
</div>
</div>
<div class="content font-class">
<ul class="icon_lists dib-box">
<li class="dib">
<span class="icon iconfont icon-folder"></span>
<div class="name">
24gf-folderOpen
</div>
<div class="code-name">.icon-folder
</div>
</li>
</ul>
<div class="article markdown">
<h2 id="font-class-">font-class 引用</h2>
<hr>
<p>font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。</p>
<p>与 Unicode 使用方式相比,具有如下特点:</p>
<ul>
<li>相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。</li>
<li>因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。</li>
</ul>
<p>使用步骤如下:</p>
<h3 id="-fontclass-">第一步:引入项目下面生成的 fontclass 代码:</h3>
<pre><code class="language-html">&lt;link rel="stylesheet" href="./iconfont.css"&gt;
</code></pre>
<h3 id="-">第二步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html">&lt;span class="iconfont icon-xxx"&gt;&lt;/span&gt;
</code></pre>
<blockquote>
<p>"
iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。</p>
</blockquote>
</div>
</div>
<div class="content symbol">
<ul class="icon_lists dib-box">
<li class="dib">
<svg class="icon svg-icon" aria-hidden="true">
<use xlink:href="#icon-folder"></use>
</svg>
<div class="name">24gf-folderOpen</div>
<div class="code-name">#icon-folder</div>
</li>
</ul>
<div class="article markdown">
<h2 id="symbol-">Symbol 引用</h2>
<hr>
<p>这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇<a href="">文章</a>
这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:</p>
<ul>
<li>支持多色图标了,不再受单色限制。</li>
<li>通过一些技巧,支持像字体那样,通过 <code>font-size</code>, <code>color</code> 来调整样式。</li>
<li>兼容性较差,支持 IE9+,及现代浏览器。</li>
<li>浏览器渲染 SVG 的性能一般,还不如 png。</li>
</ul>
<p>使用步骤如下:</p>
<h3 id="-symbol-">第一步:引入项目下面生成的 symbol 代码:</h3>
<pre><code class="language-html">&lt;script src="./iconfont.js"&gt;&lt;/script&gt;
</code></pre>
<h3 id="-css-">第二步:加入通用 CSS 代码(引入一次就行):</h3>
<pre><code class="language-html">&lt;style&gt;
.icon {
width: 1em;
height: 1em;
vertical-align: -0.15em;
fill: currentColor;
overflow: hidden;
}
&lt;/style&gt;
</code></pre>
<h3 id="-">第三步:挑选相应图标并获取类名,应用于页面:</h3>
<pre><code class="language-html">&lt;svg class="icon" aria-hidden="true"&gt;
&lt;use xlink:href="#icon-xxx"&gt;&lt;/use&gt;
&lt;/svg&gt;
</code></pre>
</div>
</div>
</div>
</div>
<script>
$(document).ready(function () {
$('.tab-container .content:first').show()
$('#tabs li').click(function (e) {
var tabContent = $('.tab-container .content')
var index = $(this).index()
if ($(this).hasClass('active')) {
return
} else {
$('#tabs li').removeClass('active')
$(this).addClass('active')
tabContent.hide().eq(index).fadeIn()
}
})
})
</script>
</body>
</html>
@font-face {
font-family: "iconfont"; /* Project id 4136233 */
src: url('iconfont.woff2?t=1687661668952') format('woff2'),
url('iconfont.woff?t=1687661668952') format('woff'),
url('iconfont.ttf?t=1687661668952') format('truetype');
}
.iconfont {
font-family: "iconfont" !important;
font-size: 16px;
font-style: normal;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-folder:before {
content: "\eac5";
}
window._iconfont_svg_string_4136233='<svg><symbol id="icon-folder" viewBox="0 0 1024 1024"><path d="M81.16 412.073333L0 709.653333V138.666667a53.393333 53.393333 0 0 1 53.333333-53.333334h253.413334a52.986667 52.986667 0 0 1 37.713333 15.62l109.253333 109.253334a10.573333 10.573333 0 0 0 7.54 3.126666H842.666667a53.393333 53.393333 0 0 1 53.333333 53.333334v74.666666H173.773333a96.2 96.2 0 0 0-92.613333 70.74z m922-7.113333a52.933333 52.933333 0 0 0-42.386667-20.96H173.773333a53.453333 53.453333 0 0 0-51.453333 39.333333L11.773333 828.666667a53.333333 53.333333 0 0 0 51.453334 67.333333h787a53.453333 53.453333 0 0 0 51.453333-39.333333l110.546667-405.333334a52.953333 52.953333 0 0 0-9.073334-46.373333z" fill="#5C5C66" ></path></symbol></svg>',function(n){var t=(t=document.getElementsByTagName("script"))[t.length-1],e=t.getAttribute("data-injectcss"),t=t.getAttribute("data-disable-injectsvg");if(!t){var o,i,a,d,c,s=function(t,e){e.parentNode.insertBefore(t,e)};if(e&&!n.__iconfont__svg__cssinject__){n.__iconfont__svg__cssinject__=!0;try{document.write("<style>.svgfont {display: inline-block;width: 1em;height: 1em;fill: currentColor;vertical-align: -0.1em;font-size:16px;}</style>")}catch(t){console&&console.log(t)}}o=function(){var t,e=document.createElement("div");e.innerHTML=n._iconfont_svg_string_4136233,(e=e.getElementsByTagName("svg")[0])&&(e.setAttribute("aria-hidden","true"),e.style.position="absolute",e.style.width=0,e.style.height=0,e.style.overflow="hidden",e=e,(t=document.body).firstChild?s(e,t.firstChild):t.appendChild(e))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(o,0):(i=function(){document.removeEventListener("DOMContentLoaded",i,!1),o()},document.addEventListener("DOMContentLoaded",i,!1)):document.attachEvent&&(a=o,d=n.document,c=!1,r(),d.onreadystatechange=function(){"complete"==d.readyState&&(d.onreadystatechange=null,l())})}function l(){c||(c=!0,a())}function r(){try{d.documentElement.doScroll("left")}catch(t){return void setTimeout(r,50)}l()}}(window);
\ No newline at end of file
{
"id": "4136233",
"name": "填单-样表",
"font_family": "iconfont",
"css_prefix_text": "icon-",
"description": "",
"glyphs": [
{
"icon_id": "7594875",
"name": "24gf-folderOpen",
"font_class": "folder",
"unicode": "eac5",
"unicode_decimal": 60101
}
]
}
...@@ -7,6 +7,8 @@ import store from "./store"; ...@@ -7,6 +7,8 @@ import store from "./store";
import "@/assets/css/normalize.css"; import "@/assets/css/normalize.css";
import "@/assets/css/reset.css"; import "@/assets/css/reset.css";
import "@/assets/css/common.less"; import "@/assets/css/common.less";
// 引入iconfont
import "@/assets/fonts/iconfont.css";
// moment 时间处理 // moment 时间处理
import moment from "moment"; import moment from "moment";
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
:visible.sync="Visible" :visible.sync="Visible"
width="50%" width="50%"
@close="handleClose" @close="handleClose"
:close-on-click-modal="false"
> >
<el-form <el-form
ref="form" ref="form"
......
...@@ -130,6 +130,9 @@ ...@@ -130,6 +130,9 @@
<el-button size="small" type="danger" @click="handleDelAll" <el-button size="small" type="danger" @click="handleDelAll"
>批量删除</el-button >批量删除</el-button
> >
<el-button size="small" type="primary" @click="addMaterialsToFolder"
>移动至</el-button
>
</div> </div>
<div slot="right" class="flex"> <div slot="right" class="flex">
<el-select <el-select
...@@ -216,7 +219,7 @@ ...@@ -216,7 +219,7 @@
</el-table-column> </el-table-column>
<el-table-column prop="sort" label="排序" align="center" width="80"> <el-table-column prop="sort" label="排序" align="center" width="80">
</el-table-column> </el-table-column>
<el-table-column label="操作" align="center" width="180"> <el-table-column label="操作" align="center" width="210">
<template slot-scope="scope"> <template slot-scope="scope">
<div class="flex jcb"> <div class="flex jcb">
<div style="width: 60px"> <div style="width: 60px">
...@@ -236,6 +239,11 @@ ...@@ -236,6 +239,11 @@
<span class="primary pointer" @click="handleEdit(scope.row)" <span class="primary pointer" @click="handleEdit(scope.row)"
>编辑</span >编辑</span
> >
<!-- <span
class="primary pointer"
@click="addMaterialsToFolder(scope.row)"
>移动至</span
> -->
<span <span
class="primary pointer" class="primary pointer"
@click="handlePreview(scope.row)" @click="handlePreview(scope.row)"
...@@ -279,10 +287,16 @@ ...@@ -279,10 +287,16 @@
:libVisible.sync="libVisible" :libVisible.sync="libVisible"
></CommonLib> ></CommonLib>
<!-- 新增文件夹 --> <!-- 新增文件夹 -->
<addFolder <AddFolders
ref="addFolder" ref="AddFolders"
:addFolderVisible.sync="addFolderVisible" :addFolderVisible.sync="addFolderVisible"
></addFolder> ></AddFolders>
<!-- 文件夹 -->
<FolderList
ref="FolderList"
@addSuccess="materialsToFolderOk"
:folderListVisible.sync="folderListVisible"
></FolderList>
</div> </div>
</template> </template>
...@@ -292,7 +306,8 @@ import AddMaterials from "./modal/AddMaterials.vue"; ...@@ -292,7 +306,8 @@ import AddMaterials from "./modal/AddMaterials.vue";
import PreviewMaterials from "./modal/PreviewMaterials.vue"; import PreviewMaterials from "./modal/PreviewMaterials.vue";
import CommonLib from "./modal/CommonLib.vue"; import CommonLib from "./modal/CommonLib.vue";
import Pagination from "@/components/Pagination.vue"; import Pagination from "@/components/Pagination.vue";
import addFolder from "./modal/addFolder.vue"; import AddFolders from "./modal/AddFolders.vue";
import FolderList from "./modal/FolderList.vue";
import { getWriteMatterList } from "@/api/matter"; import { getWriteMatterList } from "@/api/matter";
import { import {
getMaterialsList, getMaterialsList,
...@@ -308,7 +323,8 @@ export default { ...@@ -308,7 +323,8 @@ export default {
PreviewMaterials, PreviewMaterials,
CommonLib, CommonLib,
Pagination, Pagination,
addFolder, AddFolders,
FolderList,
}, },
data() { data() {
return { return {
...@@ -340,6 +356,7 @@ export default { ...@@ -340,6 +356,7 @@ export default {
matterId: null, matterId: null,
recommendCount: "", // 推荐次数 recommendCount: "", // 推荐次数
addFolderVisible: false, addFolderVisible: false,
folderListVisible: false,
}; };
}, },
created() { created() {
...@@ -540,9 +557,22 @@ export default { ...@@ -540,9 +557,22 @@ export default {
this.$message.warning("请先选择事项"); this.$message.warning("请先选择事项");
return; return;
} }
this.$refs.addFolder.onAdd(this.activeDep); this.$refs.AddFolders.onAdd(this.activeDep);
this.addFolderVisible = true; this.addFolderVisible = true;
}, },
// 移动材料进事项文件夹
addMaterialsToFolder() {
if (!this.rightSelectedRowKeys.length) {
this.$message.warning("请先勾选材料");
return;
}
this.$refs.FolderList.onAdd(this.rightSelectedRowKeys);
this.folderListVisible = true;
},
materialsToFolderOk() {
this.$refs.rightTable.clearSelection();
this.getMaterialsList();
},
}, },
}; };
</script> </script>
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
width="30%" width="30%"
@close="handleClose" @close="handleClose"
:destroy-on-close="true" :destroy-on-close="true"
:close-on-click-modal="false"
> >
<el-form <el-form
size="small" size="small"
......
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
width="30%" width="30%"
@close="handleClose" @close="handleClose"
:destroy-on-close="true" :destroy-on-close="true"
:close-on-click-modal="false"
> >
<el-form <el-form
size="small" size="small"
......
...@@ -5,6 +5,7 @@ ...@@ -5,6 +5,7 @@
title="从公共库中选择" title="从公共库中选择"
:visible.sync="Visible" :visible.sync="Visible"
width="70%" width="70%"
:close-on-click-modal="false"
> >
<TableHeader> <TableHeader>
<div slot="right" class="flex"> <div slot="right" class="flex">
......
<template>
<div>
<el-dialog
title="选择文件夹"
:visible.sync="Visible"
width="40%"
@close="handleClose"
:close-on-click-modal="false"
>
<div class="folder-list">
<el-radio
v-model="form.categoryId"
name="type"
v-for="v in folderList"
:key="v.id"
:label="v.id"
>
<div class="folder-item flex flexc aic jca">
<div class="folder-img-box flex aic jcc">
<i class="iconfont icon-folder"></i>
</div>
<p class="folder-name tac">{{ v.categoryName }}</p>
</div>
</el-radio>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" @click="handleRest">重 置</el-button>
<el-button
:loading="loading"
size="small"
type="primary"
@click="handleOk"
>确 定</el-button
>
</span>
</el-dialog>
</div>
</template>
<script>
import { getMatterFolderList } from "@/api/matter";
import { batchSaveDatumToCategory } from "@/api/materials";
export default {
props: {
folderListVisible: {
type: Boolean,
required: true,
default: false,
},
},
data() {
return {
categoryId: "",
folderList: [], // 分类列表
materialList: [], // 材料列表
form: {
categoryId: "",
categoryName: "",
materialId: "",
materialName: "",
sort: 79,
},
loading: false,
};
},
computed: {
Visible: {
get() {
return this.folderListVisible;
},
set(val) {
this.$emit("update:folderListVisible", val);
},
},
},
created() {},
methods: {
// 获取事项文件夹列表
async getMatterFolderList() {
let res = await getMatterFolderList({ page: 1, size: -1 });
if (res.data.code == 1) {
this.folderList = res.data.data.data;
}
},
// 确定
async handleOk() {
if (!this.form.categoryId) {
this.$message.warning("请勾选文件夹");
return;
}
this.loading = true;
let arr = this.materialList.map((v) => {
return {
categoryId: this.categoryId,
materialId: v.id,
materialName: v.materialName,
};
});
let res = await batchSaveDatumToCategory(arr);
let { code, msg } = res.data;
this.loading = false;
if (code === 1) {
this.$message.success(msg);
this.$emit("addSuccess");
this.handleClose();
}
},
// 新增
onAdd(row) {
Object.assign(this.form, this.$options.data().form);
this.form.id && this.$delete(this.form, "id");
// this.form.materialId = row.id;
// this.form.materialName = row.materialName;
this.materialList = row;
this.getMatterFolderList();
},
// 编辑
onEdit(row) {
this.form = { ...row };
},
// 重置
handleRest() {
this.checked = "";
},
// 关闭
handleClose() {
this.categoryId = "";
this.loading = false;
this.Visible = false;
},
},
};
</script>
<style lang="less" scoped>
.folder-list {
min-height: 400px;
max-height: 600px;
overflow-y: auto;
display: grid;
grid-template-columns: 182px 182px 182px 182px;
justify-content: center;
grid-row-gap: 10px;
.folder-item {
width: 120px;
height: 140px;
// border: 1px solid red;
.icon-folder {
font-size: 50px;
color: #188fff;
}
.folder-img-box {
width: 80px;
height: 80px;
background-color: rgba(24, 143, 255, 0.1);
border-radius: 4px;
}
.folder-name {
width: 100%;
font-size: 18px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
}
/deep/.el-checkbox__input {
position: absolute !important;
}
</style>
\ No newline at end of file
...@@ -6,6 +6,7 @@ ...@@ -6,6 +6,7 @@
:destroy-on-close="true" :destroy-on-close="true"
width="30%" width="30%"
@close="handleClose" @close="handleClose"
:close-on-click-modal="false"
> >
<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="matterName"> <el-form-item label="事项简称" prop="matterName">
......
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