|
@@ -25,7 +25,7 @@
|
|
|
<span>></span>
|
|
|
<span>百科文库</span>
|
|
|
<span>></span>
|
|
|
- <span>添加产品百科</span>
|
|
|
+ <span>添加仪器百科</span>
|
|
|
</div>
|
|
|
<div class="wrap clear">
|
|
|
<!--左侧导航-->
|
|
@@ -37,141 +37,164 @@
|
|
|
<form class="valid-form">
|
|
|
<h2><em>*</em>产品简述</h2>
|
|
|
<!-- 产品名称 -->
|
|
|
- <div class="form-item" required>
|
|
|
- <div class="form-label"><em>*</em><span>产品名称</span></div>
|
|
|
- <input type="text" class="cm input max border" placeholder="请输入产品名称"/>
|
|
|
- <div class="valid-message">产品名称不能为空!</div>
|
|
|
+ <div class="form-item" required props="name">
|
|
|
+ <div class="form-label"><em>*</em><span>仪器名称</span></div>
|
|
|
+ <input type="text" class="cm input max border valid-control" placeholder="请输入仪器名称" v-model="formData.name"/>
|
|
|
+ <div class="valid-message" v-if="!validMessage['name'].valid">{{ validMessage['name'].message }}</div>
|
|
|
</div>
|
|
|
<!-- 产品别名 -->
|
|
|
- <div class="form-item" required>
|
|
|
- <div class="form-label"><em>*</em><span>产品别名</span></div>
|
|
|
- <input type="text" class="cm input max border" placeholder="请输入英文名或其他名称"/>
|
|
|
- <div class="valid-message">产品别名不能为空!</div>
|
|
|
+ <div class="form-item" required props="alias">
|
|
|
+ <div class="form-label"><em>*</em><span>仪器别名</span></div>
|
|
|
+ <input type="text" class="cm input max border valid-control" placeholder="请输入英文名或其他名称" v-model="formData.alias"/>
|
|
|
+ <div class="valid-message" v-if="!validMessage['alias'].valid">{{ validMessage['alias'].message }}</div>
|
|
|
</div>
|
|
|
<!-- 产品概述 -->
|
|
|
- <div class="form-item" required>
|
|
|
- <div class="form-label"><em>*</em><span>产品概述</span></div>
|
|
|
- <textarea class="cm textarea border max no-resize " rows="3"></textarea>
|
|
|
- <div class="valid-message">产品概述不能为空!</div>
|
|
|
+ <div class="form-item" required props="discription">
|
|
|
+ <div class="form-label"><em>*</em><span>仪器概述</span></div>
|
|
|
+ <textarea class="cm textarea border max no-resize valid-control" rows="3" v-model="formData.discription"></textarea>
|
|
|
+ <div class="valid-message" v-if="!validMessage['discription'].valid">{{ validMessage['discription'].message }}</div>
|
|
|
</div>
|
|
|
<!-- 产品图片 -->
|
|
|
- <div class="form-item" required>
|
|
|
- <div class="form-label"><em>*</em><span>产品图片</span></div>
|
|
|
- <cm-upload-image></cm-upload-image>
|
|
|
- <div class="valid-message">产品图片不能为空!</div>
|
|
|
+ <div class="form-item" required props="image">
|
|
|
+ <div class="form-label"><em>*</em><span>仪器图片</span></div>
|
|
|
+ <cm-upload-image @change="handleUploadProductImage" @remove="handleRemoveProductImage" :img-list="imageList"></cm-upload-image>
|
|
|
+ <div class="valid-message" v-if="!validMessage['image'].valid">{{ validMessage['image'].message }}</div>
|
|
|
</div>
|
|
|
- <h2><em>*</em>产品参数</h2>
|
|
|
- <div class="form-item" required>
|
|
|
+ <h2><em>*</em>正品识别</h2>
|
|
|
+ <div class="form-item" required props="authLink">
|
|
|
+ <div class="form-label"><em>*</em><span>认证链接</span></div>
|
|
|
+ <input type="text" class="cm input max border valid-control" placeholder="请输认证链接" v-model="formData.authLink"/>
|
|
|
+ <div class="valid-message" v-if="!validMessage['authLink'].valid">{{ validMessage['authLink'].message }}</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="form-item" required props="authQrCode">
|
|
|
+ <div class="form-label"><em>*</em><span>认证二维码</span></div>
|
|
|
+ <cm-upload-image @change="handleUploadAuthQrCode" @remove="handleRemoveAuthQrCode" :img-list="authQrCodeList"></cm-upload-image>
|
|
|
+ <div class="valid-message" v-if="!validMessage['authQrCode'].valid">{{ validMessage['authQrCode'].message }}</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+ <h2><em>*</em>仪器参数</h2>
|
|
|
+ <div class="form-item" required props="paramList">
|
|
|
<cm-input-group
|
|
|
- :list="paramsList"
|
|
|
- :placeholder-list="placeholderList"
|
|
|
- :min-limit="minLimit"
|
|
|
+ :list="formData.paramList"
|
|
|
+ :placeholder-list="paramsPlaceholderList"
|
|
|
+ :min-limit="paramsMinLimit"
|
|
|
+ :key-map="paramskeyMap"
|
|
|
add-text = '添加一条'
|
|
|
- @remove="handleRemove"
|
|
|
- @add="handleAdd"
|
|
|
+ @remove="handleRemoveParams"
|
|
|
+ @add="handleAddParams"
|
|
|
></cm-input-group>
|
|
|
- <div class="valid-message">产品名称不能为空!</div>
|
|
|
+ <div class="valid-message" v-if="!validMessage['paramList'].valid">{{ validMessage['paramList'].message }}</div>
|
|
|
</div>
|
|
|
- <h2><em>*</em>产品优点</h2>
|
|
|
- <div class="form-item" required>
|
|
|
- <cm-editor v-model="youdian"></cm-editor>
|
|
|
- <div class="valid-message">产品优点不能为空!</div>
|
|
|
+ <h2><em>*</em>仪器优点</h2>
|
|
|
+ <div class="form-item" required props="advantage">
|
|
|
+ <cm-editor v-model="formData.advantage" :text="formData.advantage"></cm-editor>
|
|
|
+ <div class="valid-message" v-if="!validMessage['advantage'].valid">{{ validMessage['advantage'].message }}</div>
|
|
|
</div>
|
|
|
- <h2><em>*</em>产品缺点</h2>
|
|
|
- <div class="form-item" required>
|
|
|
- <cm-editor></cm-editor>
|
|
|
- <div class="valid-message">产品缺点不能为空!</div>
|
|
|
+ <h2><em>*</em>仪器缺点</h2>
|
|
|
+ <div class="form-item" required props="disadvantage">
|
|
|
+ <cm-editor v-model="formData.disadvantage" :text="formData.disadvantage"></cm-editor>
|
|
|
+ <div class="valid-message" v-if="!validMessage['disadvantage'].valid">{{ validMessage['disadvantage'].message }}</div>
|
|
|
</div>
|
|
|
- <h2><em>*</em>产品原理</h2>
|
|
|
- <div class="form-item" required>
|
|
|
- <cm-editor></cm-editor>
|
|
|
- <div class="valid-message">产品原理不能为空!</div>
|
|
|
+ <h2><em>*</em>仪器原理</h2>
|
|
|
+ <div class="form-item" required props="principle">
|
|
|
+ <cm-editor v-model="formData.principle" :text="formData.principle"></cm-editor>
|
|
|
+ <div class="valid-message" v-if="!validMessage['principle'].valid">{{ validMessage['principle'].message }}</div>
|
|
|
</div>
|
|
|
- <h2><em>*</em>产品档案</h2>
|
|
|
+ <h2><em>*</em>仪器档案</h2>
|
|
|
<!-- 品牌 -->
|
|
|
- <div class="form-item" required>
|
|
|
+ <div class="form-item" required props="brand">
|
|
|
<div class="form-label"><em>*</em><span>品牌</span></div>
|
|
|
- <input type="text" class="cm input max border" placeholder="请输入品牌"/>
|
|
|
- <div class="valid-message">品牌不能为空!</div>
|
|
|
+ <input type="text" class="cm input max border valid-control" placeholder="请输入品牌" v-model="formData.brand"/>
|
|
|
+ <div class="valid-message" v-if="!validMessage['brand'].valid">{{ validMessage['brand'].message }}</div>
|
|
|
</div>
|
|
|
<!-- 产地 -->
|
|
|
- <div class="form-item" required>
|
|
|
+ <div class="form-item" required props="producePlace">
|
|
|
<div class="form-label"><em>*</em><span>产地</span></div>
|
|
|
- <input type="text" class="cm input max border" placeholder="请输入产地"/>
|
|
|
- <div class="valid-message">产地不能为空!</div>
|
|
|
+ <input type="text" class="cm input max border valid-control" placeholder="请输入产地" v-model="formData.producePlace"/>
|
|
|
+ <div class="valid-message" v-if="!validMessage['producePlace'].valid">{{ validMessage['producePlace'].message }}</div>
|
|
|
</div>
|
|
|
<!-- 上市时间 -->
|
|
|
- <div class="form-item" required>
|
|
|
+ <div class="form-item" required props="marketTime">
|
|
|
<div class="form-label"><em>*</em><span>上市时间</span></div>
|
|
|
- <input type="date" class="cm input max border" placeholder="请选择上市时间"/>
|
|
|
- <div class="valid-message">上市时间不能为空!</div>
|
|
|
+ <input type="date" class="cm input max border valid-control" placeholder="请选择上市时间" v-model="formData.marketTime"/>
|
|
|
+ <div class="valid-message" v-if="!validMessage['marketTime'].valid">{{ validMessage['marketTime'].message }}</div>
|
|
|
</div>
|
|
|
<!-- 公司/厂商 -->
|
|
|
- <div class="form-item" required>
|
|
|
+ <div class="form-item" required props="company">
|
|
|
<div class="form-label"><em>*</em><span>公司/厂商</span></div>
|
|
|
- <input type="text" class="cm input max border" placeholder="请输入公司/厂商"/>
|
|
|
- <div class="valid-message">公司/厂商不能为空!</div>
|
|
|
+ <input type="text" class="cm input max border valid-control" placeholder="请输入公司/厂商" v-model="formData.company"/>
|
|
|
+ <div class="valid-message" v-if="!validMessage['company'].valid">{{ validMessage['company'].message }}</div>
|
|
|
</div>
|
|
|
<!-- NMPA认证时间 -->
|
|
|
- <div class="form-item" required>
|
|
|
+ <div class="form-item" required props="nmpaTime">
|
|
|
<div class="form-label"><em>*</em><span>NMPA认证时间</span></div>
|
|
|
- <input type="date" class="cm input max border" placeholder="请选择NMPA认证时间"/>
|
|
|
- <div class="valid-message">请选择NMPA认证时间不能为空!</div>
|
|
|
+ <input type="date" class="cm input max border valid-control" placeholder="请选择NMPA认证时间" v-model="formData.nmpaTime"/>
|
|
|
+ <div class="valid-message" v-if="!validMessage['nmpaTime'].valid">{{ validMessage['nmpaTime'].message }}</div>
|
|
|
</div>
|
|
|
<!-- 产品认证 -->
|
|
|
- <div class="form-item" required>
|
|
|
- <div class="form-label"><em>*</em><span>产品认证</span></div>
|
|
|
- <cm-upload-image></cm-upload-image>
|
|
|
- <div class="valid-message">请上传产品认证信息!</div>
|
|
|
+ <div class="form-item" required props="authImageList">
|
|
|
+ <div class="form-label"><em>*</em><span>仪器认证</span></div>
|
|
|
+ <cm-upload-image @change="handleUploadAuthImage" @remove="handleRemoveAuthImage" :multiple="true" :img-list="authImageList"></cm-upload-image>
|
|
|
+ <div class="valid-message" v-if="!validMessage['authImageList'].valid">{{ validMessage['authImageList'].message }}</div>
|
|
|
</div>
|
|
|
<h2><em>*</em>适应人群</h2>
|
|
|
- <div class="form-item" required>
|
|
|
- <cm-editor></cm-editor>
|
|
|
- <div class="valid-message">适应人群不能为空!</div>
|
|
|
+ <div class="form-item" required props="adaptiveMan">
|
|
|
+ <cm-editor v-model="formData.adaptiveMan" :text="formData.adaptiveMan"></cm-editor>
|
|
|
+ <div class="valid-message" v-if="!validMessage['adaptiveMan'].valid">{{ validMessage['adaptiveMan'].message }}</div>
|
|
|
</div>
|
|
|
<h2><em>*</em>不适应人群</h2>
|
|
|
- <div class="form-item" required>
|
|
|
- <cm-editor></cm-editor>
|
|
|
- <div class="valid-message">不适应人群不能为空!</div>
|
|
|
+ <div class="form-item" required props="unAdaptiveMan">
|
|
|
+ <cm-editor v-model="formData.unAdaptiveMan" :text="formData.unAdaptiveMan"></cm-editor>
|
|
|
+ <div class="valid-message" v-if="!validMessage['unAdaptiveMan'].valid">{{ validMessage['unAdaptiveMan'].message }}</div>
|
|
|
</div>
|
|
|
<h2><em>*</em>术前术后</h2>
|
|
|
- <div class="form-item" required>
|
|
|
- <cm-editor></cm-editor>
|
|
|
- <div class="valid-message">产品原理不能为空!</div>
|
|
|
+ <div class="form-item" required props="aroundOperation">
|
|
|
+ <cm-editor v-model="formData.aroundOperation" :text="formData.aroundOperation"></cm-editor>
|
|
|
+ <div class="valid-message" v-if="!validMessage['aroundOperation'].valid">{{ validMessage['aroundOperation'].message }}</div>
|
|
|
</div>
|
|
|
+ <!-- 效果展示 -->
|
|
|
+ <h2><em>*</em>效果展示</h2>
|
|
|
+ <div class="form-item" required props="displayImageList">
|
|
|
+ <cm-upload-image @change="handleUploadDisplayImageList" @remove="handleRemoveDisplayImageList" :multiple="true" :img-list="displayImageList"></cm-upload-image>
|
|
|
+ <div class="valid-message" v-if="!validMessage['displayImageList'].valid">{{ validMessage['displayImageList'].message }}</div>
|
|
|
+ </div>
|
|
|
+
|
|
|
<h2><em>*</em>常见问题</h2>
|
|
|
- <div class="form-item" required>
|
|
|
+ <div class="form-item" required props="questionList">
|
|
|
<cm-question-group
|
|
|
- :list="paramsList"
|
|
|
- :placeholder-list="placeholderList"
|
|
|
- :min-limit="minLimit"
|
|
|
+ :list="formData.questionList"
|
|
|
+ :placeholder-list="questionPlaceHolderList"
|
|
|
+ :min-limit="questionMinLimit"
|
|
|
add-text='添加一条'
|
|
|
- @remove="handleRemove"
|
|
|
- @add="handleAdd"
|
|
|
+ :key-map="questionkeyMap"
|
|
|
+ @remove="handleRemoveQuestion"
|
|
|
+ @add="handleAddQuestion"
|
|
|
></cm-question-group>
|
|
|
- <div class="valid-message">请添加常见问题!</div>
|
|
|
+ <div class="valid-message" v-if="!validMessage['questionList'].valid">{{ validMessage['questionList'].message }}</div>
|
|
|
</div>
|
|
|
<!-- 产品类别 -->
|
|
|
<div class="form-item" required>
|
|
|
- <div class="form-label"><em>*</em><span>产品类别</span></div>
|
|
|
- <cm-select v-model="selected" placeholder="请选择" class="cm-select">
|
|
|
- <cm-option v-for="(item, index) in options" :key="index" :label="item.label" :value="item.value"></cm-option>
|
|
|
+ <div class="form-label"><em>*</em><span>仪器类别</span></div>
|
|
|
+ <cm-select v-model="formData.typeId" placeholder="请选择" class="cm-select">
|
|
|
+ <cm-option v-for="(item, index) in typeList" :key="index" :label="item.typeName" :value="item.typeId"></cm-option>
|
|
|
</cm-select>
|
|
|
- <div class="valid-message">请选择产品类别!</div>
|
|
|
+ <div class="valid-message" v-if="!validMessage['typeId'].valid">{{ validMessage['typeId'].message }}</div>
|
|
|
</div>
|
|
|
<!-- 产品状态 -->
|
|
|
- <div class="form-item vertical" required>
|
|
|
- <div class="form-label"><em>*</em><span>产品状态</span></div>
|
|
|
+ <div class="form-item vertical" required props="status">
|
|
|
+ <div class="form-label"><em>*</em><span>状态</span></div>
|
|
|
<div class="form-group">
|
|
|
- <cm-radio class="cm-radio" :label="1" v-model="status">启用</cm-radio>
|
|
|
- <cm-radio class="cm-radio" :label="2" v-model="status">停用</cm-radio>
|
|
|
+ <cm-radio class="cm-radio" :label="1" v-model="formData.status">启用</cm-radio>
|
|
|
+ <cm-radio class="cm-radio" :label="0" v-model="formData.status">停用</cm-radio>
|
|
|
</div>
|
|
|
- <div class="valid-message">请选择产品状态!</div>
|
|
|
+ <div class="valid-message" v-if="!validMessage['status'].valid">{{ validMessage['status'].message }}</div>
|
|
|
</div>
|
|
|
|
|
|
<div class="form-item vertical btns">
|
|
|
<button class="btn break">返回</button>
|
|
|
- <button class="btn submit">保存</button>
|
|
|
+ <button class="btn submit" @click.prevent="handleSave">保存</button>
|
|
|
</div>
|
|
|
</form>
|
|
|
</div>
|
|
@@ -189,6 +212,7 @@
|
|
|
<script charset="utf-8" type="text/javascript" th:src="@{/js/center.js(v=${version})}"></script>
|
|
|
<script charset="utf-8" type="text/javascript" th:src="@{/js/common/serviceapi/supplier.service.js(v=${version})}"></script>
|
|
|
<script charset="UTF-8" type="text/javascript" th:src="@{/js/supplier-center/encyclopedia/form-component.js(v=${version})}"></script>
|
|
|
+<script charset="UTF-8" type="text/javascript" th:src="@{/js/supplier-center/encyclopedia/validFormMixin.js(v=${version})}"></script>
|
|
|
<script charset="UTF-8" type="text/javascript" th:src="@{/js/supplier-center/encyclopedia/instrument-edit.js(v=${version})}"></script>
|
|
|
</body>
|
|
|
</html>
|