|
@@ -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');
|