|
@@ -6,10 +6,12 @@
|
|
|
<template th:replace="components/head-link"></template>
|
|
|
<link th:href="@{/css/base/center.css(v=${version})}" rel="stylesheet" type="text/css">
|
|
|
<link th:if="${pageId==1026}" th:href="@{/css/base/form.css(v=${version})}" rel="stylesheet" type="text/css">
|
|
|
- <link th:href="@{/css/supplier-center/article/article-edit.css(v=${version})}" charset="UTF-8" rel="stylesheet" type="text/css">
|
|
|
+ <link th:href="@{/css/supplier-center/article/article-edit.css(v=${version})}" charset="UTF-8" rel="stylesheet"
|
|
|
+ type="text/css">
|
|
|
<template th:replace="components/analysis"></template>
|
|
|
</head>
|
|
|
<body>
|
|
|
+<input type="hidden" th:value="${coreServer}" id="coreServer">
|
|
|
<!-- 引用头部 -->
|
|
|
<template th:replace="components/header"></template>
|
|
|
|
|
@@ -30,88 +32,125 @@
|
|
|
<div class="row">
|
|
|
<div class="top-tip">温馨提示:多发布文章,有利于曝光您的产品以及提高您产品的销售量,文章发布并且审核通过后<br/>可在信息中心搜索您的文章</div>
|
|
|
<form class="form">
|
|
|
+ <!-- 标题 -->
|
|
|
<div class="form-item" required prop="title">
|
|
|
<label for="title" class="form-label"><em>*</em>标题:</label>
|
|
|
- <input id="title" class="form-control" placeholder="请输入文章标题" v-model="formData.title"/>
|
|
|
+ <input id="title" name="title" class="form-control" placeholder="请输入文章标题"
|
|
|
+ v-model="formData.title"/>
|
|
|
<template v-if="validData['title'] && !validData['title'].valid">
|
|
|
<div class="errTips" v-html="validData['title'].message"></div>
|
|
|
</template>
|
|
|
</div>
|
|
|
- <div class="form-item">
|
|
|
+ <!-- 文章标签 -->
|
|
|
+ <div class="form-item" required prop="label">
|
|
|
<label for="tag" class="form-label"><em>*</em>文章标签:</label>
|
|
|
- <input id="tag" class="form-control" placeholder=""/>
|
|
|
- <div class="errTips">请添加文章标签</div>
|
|
|
+ <input id="tag" name="label" class="form-control" placeholder="多个标签请用英文逗号( , )分割,例如:美白,祛痘"
|
|
|
+ v-model="formData.label"/>
|
|
|
+ <template v-if="validData['label'] && !validData['label'].valid">
|
|
|
+ <div class="errTips" v-html="validData['label'].message"></div>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
+ <!-- 预选标签列表 -->
|
|
|
<div class="tag-list">
|
|
|
- <div class="tag">美白<span class="close">×</span></div>
|
|
|
+ <div v-for="(label, index) in articleLabels" class="tag"
|
|
|
+ :class="{active: checkLabel(index)}" @click.stop="labelClick(index)">{{label}}<span
|
|
|
+ class="close">×</span></div>
|
|
|
</div>
|
|
|
+ <!-- 新增标签 -->
|
|
|
<div class="control-group">
|
|
|
- <input id="tagName" class="form-control tagName" placeholder="请输入标签名"/>
|
|
|
- <button class="form-button addTag">添加</button>
|
|
|
+ <input id="tagName" name="addLabel" class="form-control tagName" placeholder="请输入标签名"
|
|
|
+ v-model="addLabelName"/>
|
|
|
+ <button class="form-button addTag" type="button" @click.stop="addLabel">添加</button>
|
|
|
</div>
|
|
|
- <div class="form-item">
|
|
|
- <label for="seo" class="form-label"><em>*</em>SEO关键词:</label>
|
|
|
- <input id="seo" class="form-control" placeholder="请输入SEO关键词"/>
|
|
|
- <div class="errTips">请输入SEO关键词</div>
|
|
|
+ <!-- SEO关键词 -->
|
|
|
+ <div class="form-item" required prop="keyword">
|
|
|
+ <label for="keyword" class="form-label"><em>*</em>SEO关键词:</label>
|
|
|
+ <input id="keyword" type="text" name="keyword" class="form-control" placeholder="请输入SEO关键词"
|
|
|
+ v-model="formData.keyword"/>
|
|
|
+ <template v-if="validData['keyword'] && !validData['keyword'].valid">
|
|
|
+ <div class="errTips" v-html="validData['keyword'].message"></div>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
- <div class="form-item">
|
|
|
+ <!-- 发布人 -->
|
|
|
+ <div class="form-item" required prop="publisher">
|
|
|
<label for="postAuthor" class="form-label"><em>*</em>发布人:</label>
|
|
|
- <input id="postAuthor" class="form-control" placeholder="请输入发布人"/>
|
|
|
- <div class="errTips">请输入发布人</div>
|
|
|
+ <input id="postAuthor" name="publisher" class="form-control" placeholder="请输入发布人"
|
|
|
+ v-model="formData.publisher"/>
|
|
|
+ <template v-if="validData['publisher'] && !validData['publisher'].valid">
|
|
|
+ <div class="errTips" v-html="validData['publisher'].message"></div>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
+ <!-- 来源 -->
|
|
|
<div class="form-item">
|
|
|
<label for="source" class="form-label"><em>*</em>来源:</label>
|
|
|
- <input id="source" class="form-control" placeholder="请输入文章来源"/>
|
|
|
- <div class="errTips">请输入文章来源</div>
|
|
|
+ <input id="source" name="source" class="form-control" placeholder="请输入文章来源"
|
|
|
+ v-model="formData.source"/>
|
|
|
+ <template v-if="validData['source'] && !validData['source'].valid">
|
|
|
+ <div class="errTips" v-html="validData['source'].message"></div>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
- <div class="form-item" required prop="desc">
|
|
|
+ <!-- 推荐语 -->
|
|
|
+ <div class="form-item" required prop="recommendContent">
|
|
|
<label for="desc" class="form-label"><em>*</em>推荐语:</label>
|
|
|
- <textarea id="desc" placeholder="请输入推荐语" rows="4" v-model="formData.desc" class="form-control"></textarea>
|
|
|
- <template v-if="validData['desc'] && !validData['desc'].valid">
|
|
|
- <div class="errTips" v-html="validData['desc'].message"></div>
|
|
|
+ <textarea id="desc" name="recommendContent" placeholder="请输入推荐语" rows="4"
|
|
|
+ v-model="formData.recommendContent" class="form-control"></textarea>
|
|
|
+ <template v-if="validData['recommendContent'] && !validData['recommendContent'].valid">
|
|
|
+ <div class="errTips" v-html="validData['recommendContent'].message"></div>
|
|
|
</template>
|
|
|
</div>
|
|
|
- <div class="form-item" required prop="desc">
|
|
|
+ <!-- 文章内容 -->
|
|
|
+ <div class="form-item" required prop="articleContent">
|
|
|
<label class="form-label"><em>*</em>文章内容:</label>
|
|
|
<div id="editor"></div>
|
|
|
- <template v-if="validData['desc'] && !validData['desc'].valid">
|
|
|
- <div class="errTips" v-html="validData['desc'].message"></div>
|
|
|
+ <template v-if="validData['articleContent'] && !validData['articleContent'].valid">
|
|
|
+ <div class="errTips" v-html="validData['articleContent'].message"></div>
|
|
|
</template>
|
|
|
</div>
|
|
|
- <div class="form-item">
|
|
|
+ <!-- 文章分类 -->
|
|
|
+ <div class="form-item" required prop="typeId">
|
|
|
<label for="category" class="form-label"><em>*</em>文章分类:</label>
|
|
|
- <select id="category" class="form-control form-select">
|
|
|
- <option>请选择</option>
|
|
|
- <option>西游记</option>
|
|
|
- <option>红楼梦</option>
|
|
|
- <option>水浒卷</option>
|
|
|
- <option>三国演义</option>
|
|
|
+ <select id="category" name="typeId" class="form-control form-select"
|
|
|
+ v-model="formData.typeId">
|
|
|
+ <option value="">请选择</option>
|
|
|
+ <template v-for="(typeInfo, index) in articleTypeList">
|
|
|
+ <option :value="typeInfo.typeId" :key="index">{{typeInfo.typeName}}</option>
|
|
|
+ </template>
|
|
|
</select>
|
|
|
- <div class="errTips">请选择文章分类</div>
|
|
|
+ <template v-if="validData['typeId'] && !validData['typeId'].valid">
|
|
|
+ <div class="errTips" v-html="validData['typeId'].message"></div>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
- <div class="form-item">
|
|
|
+ <!-- 引导图 -->
|
|
|
+ <div class="form-item" required prop="guidanceImage">
|
|
|
<label class="form-label"><em>*</em>引导图:</label>
|
|
|
<label for="cover" class="upload-control">
|
|
|
- <span>+</span>
|
|
|
- <span>添加图片</span>
|
|
|
+ <template v-if="!formData.guidanceImage">
|
|
|
+ <span>+</span>
|
|
|
+ <span>添加图片</span>
|
|
|
+ </template>
|
|
|
+ <img :src="formData.guidanceImage" alt="guidanceImage" v-show="formData.guidanceImage">
|
|
|
</label>
|
|
|
- <input type="file" id="cover" class="form-control" hidden/>
|
|
|
- <div class="errTips">请上传引导图</div>
|
|
|
+ <input type="file" name="guidanceImage" id="cover" class="form-control" hidden
|
|
|
+ @change="fileInputChange(event)"/>
|
|
|
+ <template v-if="validData['guidanceImage'] && !validData['guidanceImage'].valid">
|
|
|
+ <div class="errTips" v-html="validData['guidanceImage'].message"></div>
|
|
|
+ </template>
|
|
|
</div>
|
|
|
- <div class="form-item radio-group">
|
|
|
+ <!-- 状态 -->
|
|
|
+ <div class="form-item radio-group" required prop="status">
|
|
|
<div class="form-label"><em>*</em>状态:</div>
|
|
|
<div class="radio-control">
|
|
|
- <input id="on" type="radio" name="status" checked/>
|
|
|
+ <input id="on" type="radio" value="1" name="status" v-model="formData.status"/>
|
|
|
<label for="on" class="radio">启用</label>
|
|
|
</div>
|
|
|
<div class="radio-control">
|
|
|
- <input id="off" type="radio" name="status"/>
|
|
|
+ <input id="off" type="radio" value="0" name="status" v-model="formData.status"/>
|
|
|
<label for="off" class="radio">停用</label>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="form-item btns">
|
|
|
- <button class="btn break">返回</button>
|
|
|
- <button class="btn submit">保存</button>
|
|
|
+ <button class="btn break" @click="handleBack">返回</button>
|
|
|
+ <button class="btn submit" @click="handleSave">保存</button>
|
|
|
</div>
|
|
|
</form>
|
|
|
</div>
|
|
@@ -128,6 +167,8 @@
|
|
|
th:src="@{/js/common/serviceapi/supplier.service.js(v=${version})}"></script>
|
|
|
<script charset="UTF-8" type="text/javascript"
|
|
|
th:src="@{/js/supplier-center/article/formMixin.js(v=${version})}"></script>
|
|
|
+<script charset="UTF-8" type="text/javascript"
|
|
|
+ th:src="@{/js/supplier-center/article/uploadMixin.js(v=${version})}"></script>
|
|
|
<script charset="UTF-8" type="text/javascript"
|
|
|
th:src="@{/js/supplier-center/article/article-edit.js(v=${version})}"></script>
|
|
|
</body>
|