Browse Source

采美百科页面接口调试

yuwenjun1997 2 years ago
parent
commit
f4a9088436

+ 1 - 1
src/main/resources/static/css/supplier-center/encyclopedia/edit.css

@@ -2,7 +2,7 @@
 .navLayout{min-height:calc(100vh - 185px - 785px) !important}
 .bk-container .right{background:#fff;padding:24px 0}
 .bk-container .top-tip{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;height:60px;text-align:center;font-size:12px;color:#E15616;line-height:18px;background:-o-linear-gradient(left,rgba(255,255,255,0.1) 0%,rgba(225,86,22,0.1) 51%,rgba(255,255,255,0.1) 100%);background:-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,0.1)),color-stop(51%,rgba(225,86,22,0.1)),to(rgba(255,255,255,0.1)));background:linear-gradient(90deg,rgba(255,255,255,0.1) 0%,rgba(225,86,22,0.1) 51%,rgba(255,255,255,0.1) 100%)}
-.max-width{width:100%}
+.max-width{width:100% !important}
 .valide-form{width:680px;margin:40px auto 0}
 .valide-form .el-input .el-input__inner{height:36px;line-height:34px;border-radius:2px}
 .valide-form .el-select .el-select__caret{line-height:36px}

+ 1 - 0
src/main/resources/static/js/supplier-center/encyclopedia/components/content-edit/content-edit.js

@@ -109,6 +109,7 @@ class ContentEdit {
             this.options.change && this.options.change(this.innerHTML)
             return this.ctrid
         } catch (e) {
+            console.log(e)
             return this.ctrid
         }
     }

+ 73 - 30
src/main/resources/static/js/supplier-center/encyclopedia/edit.js

@@ -106,6 +106,49 @@ const ImageUpload = {
 
 var markCount = 0
 
+function validateWebsite(rule, value, callback){
+    if(/[a-zA-z]+:\/\/[^\s]*/.test(value)){
+        callback()
+    }else{
+        callback(new Error('请输入合法的网址'))
+    }
+}
+
+function validateTimeStr(rule, value, callback){
+    if(/^\d{4}-\d{1,2}-\d{1,2}/.test(value)){
+        callback()
+    }else{
+        callback(new Error('时间格式不合法(示例:1970-01-01)'))
+    }
+}
+
+function initReferenceData(){
+    return {
+        id: 1,
+        ctrlId: '', // 关联id
+        /* (网络资料) */
+        referenceType: 1, // '参考类型资料(1.网络;2.著作;3.其他)'
+        website: '',
+        articleName: '',
+        websiteName: '',
+        publishTimeStr: '',
+        acitationTimeStr: '',
+        /* 著作资料)*/
+        author: '',
+        workName: '',
+        publicationPlace: '',
+        press: '',
+        publicationYearStr: '',
+        acitationWeb: '',
+        /* (其他资料) */
+        referenceDescription: '',
+        imageDescription: '',
+        imageUrl: '',
+        entryId: '',
+        entryType: ''
+    }
+}
+
 const edit = new Vue({
     el: '#edit',
     components: {
@@ -153,34 +196,14 @@ const edit = new Vue({
             status: [{required: true, message: '请选择词条发布状态', trigger: ['change']}],
         },
         // 参考资料信息表单
-        referenceData: {
-            id: 1,
-            ctrlId: '', // 关联id
-            /* (网络资料) */
-            referenceType: 1, // '参考类型资料(1.网络;2.著作;3.其他)'
-            website: '',
-            articleName: '',
-            websiteName: '',
-            publishTimeStr: '',
-            acitationTimeStr: '',
-            /* 著作资料)*/
-            author: '',
-            workName: '',
-            publicationPlace: '',
-            press: '',
-            publicationYearStr: '',
-            acitationWeb: '',
-            /* (其他资料) */
-            referenceDescription: '',
-            imageDescription: '',
-            imageUrl: '',
-            entryId: '',
-            entryType: ''
-        },
+        referenceData: initReferenceData(),
         // 参考资料表单规则校验
         referenceRule: {
             referenceType: [{required: true, message: '请选择参考类型资料', trigger: ['change']}],
-            website: [{required: true, message: '请输入网址', trigger: ['blur']}],
+            website: [
+                {required: true, message: '请输入网址', trigger: ['blur']},
+                { validator: validateWebsite, trigger: 'blur' }
+            ],
             articleName: [{required: true, message: '请输入文章名字', trigger: ['blur']}],
             websiteName: [{required: true, message: '请输入网站名称', trigger: ['blur']}],
             author: [{required: true, message: '请输入作者名称', trigger: ['blur']}],
@@ -196,7 +219,8 @@ const edit = new Vue({
         //词条类型列表
         typeList: [],
         // 敏感词校验数据
-        formValidate: {}
+        formValidate: {},
+        referenceImageList: []
     },
     created() {
         this.formData.id = CAIMEI.getUrlParam('id')
@@ -299,7 +323,6 @@ const edit = new Vue({
             shopBikeApi.SaveEntrySumbit(params, function (res) {
                 CAIMEI.dialog('词条保存成功', false);
                 setTimeout(function () {
-                    debugger
                     self.handleBack()
                 }, 500)
             })
@@ -324,6 +347,8 @@ const edit = new Vue({
 
         // ref dialog 隐藏
         handleRefDialogClose() {
+            this.referenceData = initReferenceData()
+            this.$refs.referenceForm.clearValidate()
             this.referenceDialog = false
             this.referenceType = 1
         },
@@ -339,8 +364,10 @@ const edit = new Vue({
                     const index = this.formData.referenceList.findIndex(ref => ref.ctrlId === this.referenceData.ctrlId);
                     this.formData.referenceList.splice(index, 1, deepClone(this.referenceData))
                 }
-                this.referenceDialog = false
                 this.referenceEditType = 'add'
+                this.referenceData = initReferenceData()
+                this.$refs.referenceForm.clearValidate()
+                this.referenceDialog = false
             } catch (e) {
                 console.log(e)
             }
@@ -350,7 +377,8 @@ const edit = new Vue({
             this.contentEdit.parcel(item.ctrlId, index+1)
         },
         handleReferenceTypeChange(){
-            this.$refs.referenceForm.resetFields()
+            this.referenceData = initReferenceData()
+            this.$refs.referenceForm.clearValidate()
         },
         // ref tab 切换
         handleTabChange(index) {
@@ -364,8 +392,14 @@ const edit = new Vue({
         // 参考资料修改
         handleReferenceEdit(item) {
             this.referenceEditType = 'edit'
-            this.referenceData = deepClone(item)
+            this.referenceData = {
+                ...this.referenceType,
+                ...item
+            }
             this.referenceDialog = true
+            if(this.referenceData.imageUrl){
+                this.referenceImageList = [{ url: this.referenceData.imageUrl, type: 'image' }]
+            }
         },
         // 参考资料删除
         handleReferenceDelete(item) {
@@ -427,6 +461,15 @@ const edit = new Vue({
             this.formData.image = ''
             this.coverList = this.coverList.filter(item => item.uuid !== file.uuid);
         },
+        // 资料图片上传
+        handleReferenceImageUploadSuccess(fileList){
+            this.referenceImageList = fileList
+            this.referenceData.imageUrl = fileList[0].url
+        },
+        handleReferenceImageRemove(){
+            this.referenceImageList = []
+            this.referenceData.imageUrl = ''
+        },
         // 返回文章列表页面
         handleBack() {
             window.open('/supplier/encyclopedia/list.html', 'supplier-entry-list');

+ 9 - 18
src/main/resources/templates/supplier-center/encyclopedia/edit.html

@@ -147,7 +147,7 @@
                         </el-form-item>
                     </el-form>
                     <div class="bk-control">
-                        <button class="bk-back">返回</button>
+                        <button class="bk-back" @click="handleBack">返回</button>
                         <button class="bk-confirm" @click="handleConfirm">保存</button>
                     </div>
                 </div>
@@ -184,10 +184,12 @@
                                 <el-input placeholder="请输入网站名称,如新华网" v-model="referenceData.websiteName"></el-input>
                             </el-form-item>
                             <el-form-item label="发表日期" prop="publishTimeStr">
-                                <el-input placeholder="发表日期" v-model="referenceData.publishTimeStr"></el-input>
+                                <el-date-picker class="max-width" value-format="yyyy-MM-dd" v-model="referenceData.publishTimeStr" type="date" placeholder="请选择出版日期"></el-date-picker>
+                                <!-- <el-input placeholder="发表日期(示例:1970-01-01)" v-model="referenceData.publishTimeStr"></el-input> -->
                             </el-form-item>
                             <el-form-item label="引文日期" prop="acitationTimeStr">
-                                <el-input placeholder="引文日期" v-model="referenceData.acitationTimeStr"></el-input>
+                                <el-date-picker class="max-width" value-format="yyyy-MM-dd" v-model="referenceData.acitationTimeStr" type="date" placeholder="请选择出版日期"></el-date-picker>
+                                <!-- <el-input placeholder="引文日期(示例:1970-01-01)" v-model="referenceData.acitationTimeStr"></el-input> -->
                             </el-form-item>
                         </template>
                         <template v-if="referenceData.referenceType === 2">
@@ -204,7 +206,8 @@
                                 <el-input placeholder="请输入出版社名称" v-model="referenceData.press"></el-input>
                             </el-form-item>
                             <el-form-item label="出版年" prop="publicationYearStr">
-                                <el-input placeholder="请输入出版日期" v-model="referenceData.publicationYearStr"></el-input>
+                                <el-date-picker class="max-width" value-format="yyyy-MM-dd" v-model="referenceData.publicationYearStr" type="date" placeholder="请选择出版日期"></el-date-picker>
+                                <!-- <el-input placeholder="请输入出版日期(示例:1970-01-01)" v-model="referenceData.publicationYearStr"></el-input> -->
                             </el-form-item>
                             <el-form-item label="引文页码" prop="acitationWeb">
                                 <el-input placeholder="请输入引用著作的页码,如100-121" v-model="referenceData.acitationWeb"></el-input>
@@ -219,19 +222,7 @@
                             </el-form-item>
                             <el-form-item label="图片上传" prop="imageUrl">
                                 <el-input v-show="false" v-model="referenceData.imageUrl"></el-input>
-                                <input type="file" v-show="false" />
-                                <div class="bk-file-upload">
-                                    <div class="bk-upload">
-                                        <div>+</div>
-                                        <div>添加图片</div>
-                                    </div>
-                                    <ul class="bk-file-wrap">
-                                        <li>
-                                            <span>×</span>
-                                            <img src="https://picsum.photos/600/600"/>
-                                        </li>
-                                    </ul>
-                                </div>
+                                <file-upload @upload-success="handleReferenceImageUploadSuccess" @remove="handleReferenceImageRemove" :list="referenceImageList"></file-upload>
                             </el-form-item>
                         </template>
                     </el-form>
@@ -339,4 +330,4 @@
 <script charset="UTF-8" type="text/javascript" th:src="@{/js/supplier-center/encyclopedia/components/content-edit/index.js(v=${version})}"></script>
 <script charset="UTF-8" type="text/javascript" th:src="@{/js/supplier-center/encyclopedia/edit.js(v=${version})}"></script>
 </body>
-</html>
+</html>