|
@@ -6,79 +6,120 @@
|
|
{{ ruleForm.id ? "编辑" : "新增" }}
|
|
{{ ruleForm.id ? "编辑" : "新增" }}
|
|
</div>
|
|
</div>
|
|
<div class="conten">
|
|
<div class="conten">
|
|
- <el-form :model="ruleForm" ref="ruleForm" label-width="120px" class="demo-ruleForm">
|
|
|
|
|
|
+ <el-form
|
|
|
|
+ :model="ruleForm"
|
|
|
|
+ ref="ruleForm"
|
|
|
|
+ label-width="120px"
|
|
|
|
+ class="demo-ruleForm"
|
|
|
|
+ >
|
|
<!-- 名称 -->
|
|
<!-- 名称 -->
|
|
<div class="checkBox2">
|
|
<div class="checkBox2">
|
|
<el-form-item label="名称:">
|
|
<el-form-item label="名称:">
|
|
<i class="biaoshi biaoshi2"></i>
|
|
<i class="biaoshi biaoshi2"></i>
|
|
- <el-input v-model="ruleForm.name" maxlength="10" show-word-limit></el-input>
|
|
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="ruleForm.name"
|
|
|
|
+ maxlength="10"
|
|
|
|
+ show-word-limit
|
|
|
|
+ ></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<!-- 总登记号 -->
|
|
<!-- 总登记号 -->
|
|
<el-form-item label="总登记号:">
|
|
<el-form-item label="总登记号:">
|
|
- <el-input v-model="ruleForm.registerNum" maxlength="25" show-word-limit></el-input>
|
|
|
|
|
|
+ <el-input
|
|
|
|
+ v-model="ruleForm.registerNum"
|
|
|
|
+ maxlength="25"
|
|
|
|
+ show-word-limit
|
|
|
|
+ ></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</div>
|
|
</div>
|
|
<div class="checkBox">
|
|
<div class="checkBox">
|
|
|
|
+ <!-- 日期 -->
|
|
|
|
+ <el-form-item label="日期:">
|
|
|
|
+ <i class="biaoshi biaoshi2"></i>
|
|
|
|
+ <el-date-picker
|
|
|
|
+ format="yyyy-MM-dd"
|
|
|
|
+ value-format="yyyy-MM-dd"
|
|
|
|
+ v-model="day"
|
|
|
|
+ type="date"
|
|
|
|
+ placeholder="选择日期"
|
|
|
|
+ >
|
|
|
|
+ </el-date-picker>
|
|
|
|
+ </el-form-item>
|
|
|
|
+
|
|
<!-- 类型 -->
|
|
<!-- 类型 -->
|
|
<el-form-item label="类别:">
|
|
<el-form-item label="类别:">
|
|
- <el-select v-model="ruleForm.dictTextureId" clearable placeholder="请选择类别">
|
|
|
|
- <el-option v-for="i in dictTextureArr" :key="i.value" :label="i.label" :value="i.value">
|
|
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="ruleForm.dictTextureId"
|
|
|
|
+ clearable
|
|
|
|
+ placeholder="请选择类别"
|
|
|
|
+ >
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="i in dictTextureArr"
|
|
|
|
+ :key="i.value"
|
|
|
|
+ :label="i.label"
|
|
|
|
+ :value="i.value"
|
|
|
|
+ >
|
|
</el-option>
|
|
</el-option>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<!-- 年代 -->
|
|
<!-- 年代 -->
|
|
<el-form-item label="年代:">
|
|
<el-form-item label="年代:">
|
|
- <el-cascader ref="elCascader" clearable v-model="dictAgeId" :options="options" @change="handleChange">
|
|
|
|
|
|
+ <el-cascader
|
|
|
|
+ ref="elCascader"
|
|
|
|
+ clearable
|
|
|
|
+ v-model="dictAgeId"
|
|
|
|
+ :options="options"
|
|
|
|
+ >
|
|
</el-cascader>
|
|
</el-cascader>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<!-- 级别 -->
|
|
<!-- 级别 -->
|
|
<el-form-item label="级别:">
|
|
<el-form-item label="级别:">
|
|
- <el-select v-model="ruleForm.dictLevelId" clearable placeholder="请选择级别">
|
|
|
|
- <el-option v-for="i in dictLevelArr" :key="i.value" :label="i.label" :value="i.value">
|
|
|
|
|
|
+ <el-select
|
|
|
|
+ v-model="ruleForm.dictLevelId"
|
|
|
|
+ clearable
|
|
|
|
+ placeholder="请选择级别"
|
|
|
|
+ >
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="i in dictLevelArr"
|
|
|
|
+ :key="i.value"
|
|
|
|
+ :label="i.label"
|
|
|
|
+ :value="i.value"
|
|
|
|
+ >
|
|
</el-option>
|
|
</el-option>
|
|
</el-select>
|
|
</el-select>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
</div>
|
|
</div>
|
|
<!-- 尺寸 -->
|
|
<!-- 尺寸 -->
|
|
- <el-form-item label="尺寸:" class="fromSize">
|
|
|
|
- <div class="sizeRow">
|
|
|
|
- <span>长:</span>
|
|
|
|
- <el-input v-model="chang" maxlength="8" :onkeyup="clearNoNum('chang')"></el-input>
|
|
|
|
- <el-select v-model="changDanWei" placeholder="请选择类别">
|
|
|
|
- <el-option v-for="i in sizeData" :key="i" :label="i" :value="i">
|
|
|
|
- </el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </div>
|
|
|
|
- <div class="sizeRow sizeRow2">
|
|
|
|
- <span>宽:</span>
|
|
|
|
- <el-input v-model="kuang" maxlength="8" :onkeyup="clearNoNum('kuang')"></el-input>
|
|
|
|
- <el-select v-model="kuangDanWei" placeholder="请选择类别">
|
|
|
|
- <el-option v-for="i in sizeData" :key="i" :label="i" :value="i">
|
|
|
|
- </el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </div>
|
|
|
|
- <div class="sizeRow sizeRow2">
|
|
|
|
- <span>高:</span>
|
|
|
|
- <el-input v-model="gao" maxlength="8" :onkeyup="clearNoNum('gao')"></el-input>
|
|
|
|
- <el-select v-model="gaoDanWei" placeholder="请选择类别">
|
|
|
|
- <el-option v-for="i in sizeData" :key="i" :label="i" :value="i">
|
|
|
|
- </el-option>
|
|
|
|
- </el-select>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <el-form-item label="尺寸:">
|
|
|
|
+ <el-input v-model="chang" maxlength="100"></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
|
|
|
<!-- 图片 -->
|
|
<!-- 图片 -->
|
|
<el-form-item label="图片:">
|
|
<el-form-item label="图片:">
|
|
<i class="biaoshi biaoshi1"></i>
|
|
<i class="biaoshi biaoshi1"></i>
|
|
- <el-upload accept=".png,.jpg,.jpeg,.gif" :data="{ type: 'img' }" class="avatar-uploader"
|
|
|
|
- :action="baseURL + '/api/cms/goods/upload'" :headers="{ token }" :show-file-list="true"
|
|
|
|
- :before-upload="beforethumbUpload" :on-success="upload_thumb_success">
|
|
|
|
|
|
+ <el-upload
|
|
|
|
+ accept=".png,.jpg,.jpeg,.gif"
|
|
|
|
+ :data="{ type: 'img' }"
|
|
|
|
+ class="avatar-uploader"
|
|
|
|
+ :action="baseURL + '/api/cms/goods/upload'"
|
|
|
|
+ :headers="{ token }"
|
|
|
|
+ :show-file-list="true"
|
|
|
|
+ :before-upload="beforethumbUpload"
|
|
|
|
+ :on-success="upload_thumb_success"
|
|
|
|
+ >
|
|
<div v-if="ruleForm.thumb" class="imgdiv">
|
|
<div v-if="ruleForm.thumb" class="imgdiv">
|
|
- <img style="width: 150px;height: 150px;
|
|
|
|
|
|
+ <img
|
|
|
|
+ style="
|
|
|
|
+ width: 150px;
|
|
|
|
+ height: 150px;
|
|
display: block;
|
|
display: block;
|
|
object-fit: cover;
|
|
object-fit: cover;
|
|
- " :src="baseURL + ruleForm.thumb" />
|
|
|
|
- <i class="el-icon-circle-close" @click.stop="ruleForm.thumb = ''"></i>
|
|
|
|
|
|
+ "
|
|
|
|
+ :src="baseURL + ruleForm.thumb"
|
|
|
|
+ />
|
|
|
|
+ <i
|
|
|
|
+ class="el-icon-circle-close"
|
|
|
|
+ @click.stop="ruleForm.thumb = ''"
|
|
|
|
+ ></i>
|
|
</div>
|
|
</div>
|
|
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
|
<i v-else class="el-icon-plus avatar-uploader-icon"></i>
|
|
</el-upload>
|
|
</el-upload>
|
|
@@ -89,21 +130,49 @@
|
|
<!-- 说明 -->
|
|
<!-- 说明 -->
|
|
<el-form-item label="说明:">
|
|
<el-form-item label="说明:">
|
|
<div class="txtBtn">
|
|
<div class="txtBtn">
|
|
- <el-button :disabled="ruleForm.description.length >= 128" size="small" round
|
|
|
|
- @click="ruleForm.description += '  '">首行缩进</el-button>
|
|
|
|
- <el-button :disabled="ruleForm.description.length >= 135" size="small" round
|
|
|
|
- @click="ruleForm.description += '<br/>'">换行</el-button>
|
|
|
|
|
|
+ <el-button
|
|
|
|
+ :disabled="ruleForm.description.length >= 128"
|
|
|
|
+ size="small"
|
|
|
|
+ round
|
|
|
|
+ @click="ruleForm.description += '  '"
|
|
|
|
+ >首行缩进</el-button
|
|
|
|
+ >
|
|
|
|
+ <el-button
|
|
|
|
+ :disabled="ruleForm.description.length >= 135"
|
|
|
|
+ size="small"
|
|
|
|
+ round
|
|
|
|
+ @click="ruleForm.description += '<br/>'"
|
|
|
|
+ >换行</el-button
|
|
|
|
+ >
|
|
</div>
|
|
</div>
|
|
- <el-input type="textarea" v-model="ruleForm.description" maxlength="140" show-word-limit></el-input>
|
|
|
|
|
|
+ <el-input
|
|
|
|
+ type="textarea"
|
|
|
|
+ v-model="ruleForm.description"
|
|
|
|
+ maxlength="140"
|
|
|
|
+ show-word-limit
|
|
|
|
+ ></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<!-- 附件 -->
|
|
<!-- 附件 -->
|
|
<div class="rowFrom">
|
|
<div class="rowFrom">
|
|
<el-form-item label="模型文件:" v-if="ruleForm.type === 'model'">
|
|
<el-form-item label="模型文件:" v-if="ruleForm.type === 'model'">
|
|
<i class="biaoshi"></i>
|
|
<i class="biaoshi"></i>
|
|
- <el-upload accept=".4dage" multiple drag class="upload-demo" :data="{ type: 'model' }" :file-list="fileList"
|
|
|
|
- :action="baseURL + '/api/cms/goods/upload'" :headers="{ token }" :before-upload="beforeFujian"
|
|
|
|
- :on-success="successFujian" :before-remove="beforeRemove" :on-remove="handleRemove" :limit="1"
|
|
|
|
- :on-exceed="handleExceed" :show-file-list="true">
|
|
|
|
|
|
+ <el-upload
|
|
|
|
+ accept=".4dage"
|
|
|
|
+ multiple
|
|
|
|
+ drag
|
|
|
|
+ class="upload-demo"
|
|
|
|
+ :data="{ type: 'model' }"
|
|
|
|
+ :file-list="fileList"
|
|
|
|
+ :action="baseURL + '/api/cms/goods/upload'"
|
|
|
|
+ :headers="{ token }"
|
|
|
|
+ :before-upload="beforeFujian"
|
|
|
|
+ :on-success="successFujian"
|
|
|
|
+ :before-remove="beforeRemove"
|
|
|
|
+ :on-remove="handleRemove"
|
|
|
|
+ :limit="1"
|
|
|
|
+ :on-exceed="handleExceed"
|
|
|
|
+ :show-file-list="true"
|
|
|
|
+ >
|
|
<i class="el-icon-upload"></i>
|
|
<i class="el-icon-upload"></i>
|
|
<div class="el-upload__text">
|
|
<div class="el-upload__text">
|
|
将文件拖到此处,或<em>点击上传</em>
|
|
将文件拖到此处,或<em>点击上传</em>
|
|
@@ -115,10 +184,23 @@
|
|
</el-form-item>
|
|
</el-form-item>
|
|
      
|
|
      
|
|
<el-form-item label="音频文件:" v-if="ruleForm.type === 'model'">
|
|
<el-form-item label="音频文件:" v-if="ruleForm.type === 'model'">
|
|
- <el-upload accept=".mp3" multiple drag class="upload-demo" :data="{ type: 'audio' }" :file-list="fileList2"
|
|
|
|
- :action="baseURL + '/api/cms/goods/upload'" :headers="{ token }" :before-upload="beforeFujian2"
|
|
|
|
- :on-success="successFujian2" :before-remove="beforeRemove2" :on-remove="handleRemove2" :limit="1"
|
|
|
|
- :on-exceed="handleExceed2" :show-file-list="true">
|
|
|
|
|
|
+ <el-upload
|
|
|
|
+ accept=".mp3"
|
|
|
|
+ multiple
|
|
|
|
+ drag
|
|
|
|
+ class="upload-demo"
|
|
|
|
+ :data="{ type: 'audio' }"
|
|
|
|
+ :file-list="fileList2"
|
|
|
|
+ :action="baseURL + '/api/cms/goods/upload'"
|
|
|
|
+ :headers="{ token }"
|
|
|
|
+ :before-upload="beforeFujian2"
|
|
|
|
+ :on-success="successFujian2"
|
|
|
|
+ :before-remove="beforeRemove2"
|
|
|
|
+ :on-remove="handleRemove2"
|
|
|
|
+ :limit="1"
|
|
|
|
+ :on-exceed="handleExceed2"
|
|
|
|
+ :show-file-list="true"
|
|
|
|
+ >
|
|
<i class="el-icon-upload"></i>
|
|
<i class="el-icon-upload"></i>
|
|
<div class="el-upload__text">
|
|
<div class="el-upload__text">
|
|
将文件拖到此处,或<em>点击上传</em>
|
|
将文件拖到此处,或<em>点击上传</em>
|
|
@@ -148,16 +230,13 @@ export default {
|
|
data () {
|
|
data () {
|
|
// 这里存放数据
|
|
// 这里存放数据
|
|
return {
|
|
return {
|
|
|
|
+ // 日期
|
|
|
|
+ day: '',
|
|
|
|
+
|
|
// 服务器前缀地址
|
|
// 服务器前缀地址
|
|
baseURL: '',
|
|
baseURL: '',
|
|
// 尺寸
|
|
// 尺寸
|
|
- sizeData: ['米', '厘米', '毫米'],
|
|
|
|
chang: '',
|
|
chang: '',
|
|
- changDanWei: '厘米',
|
|
|
|
- kuang: '',
|
|
|
|
- kuangDanWei: '厘米',
|
|
|
|
- gao: '',
|
|
|
|
- gaoDanWei: '厘米',
|
|
|
|
// 年代
|
|
// 年代
|
|
dictAgeId: [],
|
|
dictAgeId: [],
|
|
options: [],
|
|
options: [],
|
|
@@ -191,23 +270,6 @@ export default {
|
|
watch: {},
|
|
watch: {},
|
|
// 方法集合
|
|
// 方法集合
|
|
methods: {
|
|
methods: {
|
|
- clearNoNum (val) {
|
|
|
|
- try {
|
|
|
|
- this[val] = this[val].replace(/[^\d.]/g, '') // 清除“数字”和“.”以外的字符
|
|
|
|
- this[val] = this[val].replace(/\.{2,}/g, '.') // 只保留第一个. 清除多余的
|
|
|
|
- // eslint-disable-next-line no-useless-escape
|
|
|
|
- this[val] = this[val].replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3') // 只能输入两个小数
|
|
|
|
- if (this[val].indexOf('.') < 0 && this[val].trim() !== '') {
|
|
|
|
- // 以上已经过滤,此处控制的是如果没有小数点,首位不能为类似于 01、02的金额
|
|
|
|
- this[val] = parseFloat(this[val])
|
|
|
|
- }
|
|
|
|
- } catch (error) {
|
|
|
|
- console.log(error)
|
|
|
|
- }
|
|
|
|
- },
|
|
|
|
- handleChange (value) {
|
|
|
|
- console.log(value)
|
|
|
|
- },
|
|
|
|
// 点击取消
|
|
// 点击取消
|
|
goBack () {
|
|
goBack () {
|
|
let k = this.$route.query.k
|
|
let k = this.$route.query.k
|
|
@@ -228,7 +290,9 @@ export default {
|
|
if (this.ruleForm.filePath === '' && this.ruleForm.type === 'model') {
|
|
if (this.ruleForm.filePath === '' && this.ruleForm.type === 'model') {
|
|
return this.$message.warning('文件不能为空')
|
|
return this.$message.warning('文件不能为空')
|
|
}
|
|
}
|
|
|
|
+ if (!this.day) return this.$message.warning('日期不能为空')
|
|
const obj = { ...this.ruleForm }
|
|
const obj = { ...this.ruleForm }
|
|
|
|
+ obj.day = this.day
|
|
// 年代数据判断
|
|
// 年代数据判断
|
|
if (this.dictAgeId && this.dictAgeId[1]) {
|
|
if (this.dictAgeId && this.dictAgeId[1]) {
|
|
obj.dictAgeId = this.dictAgeId[1]
|
|
obj.dictAgeId = this.dictAgeId[1]
|
|
@@ -237,9 +301,7 @@ export default {
|
|
obj.dictAgeFront = tempArr.join('/')
|
|
obj.dictAgeFront = tempArr.join('/')
|
|
}
|
|
}
|
|
// 长宽高判断
|
|
// 长宽高判断
|
|
- if (this.chang) obj.sizeLength = this.chang + ',' + this.changDanWei
|
|
|
|
- if (this.kuang) obj.sizeWidth = this.kuang + ',' + this.kuangDanWei
|
|
|
|
- if (this.gao) obj.sizeHeight = this.gao + ',' + this.gaoDanWei
|
|
|
|
|
|
+ if (this.chang) obj.sizeLength = this.chang
|
|
const res = await goodsSave(obj)
|
|
const res = await goodsSave(obj)
|
|
if (res.code === 0) {
|
|
if (res.code === 0) {
|
|
this.$message.success('操作成功')
|
|
this.$message.success('操作成功')
|
|
@@ -351,7 +413,6 @@ export default {
|
|
handleExceed2 (files, fileList) {
|
|
handleExceed2 (files, fileList) {
|
|
this.$message.warning('只能上传一个文件,请删除原文件后操作')
|
|
this.$message.warning('只能上传一个文件,请删除原文件后操作')
|
|
}
|
|
}
|
|
-
|
|
|
|
},
|
|
},
|
|
// 生命周期 - 创建完成(可以访问当前this实例)
|
|
// 生命周期 - 创建完成(可以访问当前this实例)
|
|
async created () {
|
|
async created () {
|
|
@@ -394,7 +455,9 @@ export default {
|
|
// 附件回显
|
|
// 附件回显
|
|
this.fileList = [{ name: resSon.data.fileName }]
|
|
this.fileList = [{ name: resSon.data.fileName }]
|
|
// 音频回显
|
|
// 音频回显
|
|
- if (resSon.data.audioName) this.fileList2 = [{ name: resSon.data.audioName }]
|
|
|
|
|
|
+ if (resSon.data.audioName) {
|
|
|
|
+ this.fileList2 = [{ name: resSon.data.audioName }]
|
|
|
|
+ }
|
|
|
|
|
|
// 年代回显
|
|
// 年代回显
|
|
if (resSon.data.dictAgeId) {
|
|
if (resSon.data.dictAgeId) {
|
|
@@ -405,35 +468,20 @@ export default {
|
|
})
|
|
})
|
|
}
|
|
}
|
|
// 尺寸回显
|
|
// 尺寸回显
|
|
- const chang = resSon.data.sizeLength
|
|
|
|
- const kuang = resSon.data.sizeWidth
|
|
|
|
- const gao = resSon.data.sizeHeight
|
|
|
|
- if (chang) {
|
|
|
|
- const temp = chang.split(',')
|
|
|
|
- this.chang = temp[0]
|
|
|
|
- this.changDanWei = temp[1]
|
|
|
|
- }
|
|
|
|
- if (kuang) {
|
|
|
|
- const temp = kuang.split(',')
|
|
|
|
- this.kuang = temp[0]
|
|
|
|
- this.kuangDanWei = temp[1]
|
|
|
|
- }
|
|
|
|
- if (gao) {
|
|
|
|
- const temp = gao.split(',')
|
|
|
|
- this.gao = temp[0]
|
|
|
|
- this.gaoDanWei = temp[1]
|
|
|
|
- }
|
|
|
|
|
|
+ this.chang = resSon.data.sizeLength
|
|
|
|
+ // 日期回显
|
|
|
|
+ this.day = resSon.data.day
|
|
}
|
|
}
|
|
},
|
|
},
|
|
// 生命周期 - 挂载完成(可以访问DOM元素)
|
|
// 生命周期 - 挂载完成(可以访问DOM元素)
|
|
- mounted () { },
|
|
|
|
- beforeCreate () { }, // 生命周期 - 创建之前
|
|
|
|
- beforeMount () { }, // 生命周期 - 挂载之前
|
|
|
|
- beforeUpdate () { }, // 生命周期 - 更新之前
|
|
|
|
- updated () { }, // 生命周期 - 更新之后
|
|
|
|
- beforeDestroy () { }, // 生命周期 - 销毁之前
|
|
|
|
- destroyed () { }, // 生命周期 - 销毁完成
|
|
|
|
- activated () { } // 如果页面有keep-alive缓存功能,这个函数会触发
|
|
|
|
|
|
+ mounted () {},
|
|
|
|
+ beforeCreate () {}, // 生命周期 - 创建之前
|
|
|
|
+ beforeMount () {}, // 生命周期 - 挂载之前
|
|
|
|
+ beforeUpdate () {}, // 生命周期 - 更新之前
|
|
|
|
+ updated () {}, // 生命周期 - 更新之后
|
|
|
|
+ beforeDestroy () {}, // 生命周期 - 销毁之前
|
|
|
|
+ destroyed () {}, // 生命周期 - 销毁完成
|
|
|
|
+ activated () {} // 如果页面有keep-alive缓存功能,这个函数会触发
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
<style lang='less' scoped>
|
|
<style lang='less' scoped>
|
|
@@ -553,7 +601,7 @@ export default {
|
|
width: 100%;
|
|
width: 100%;
|
|
display: flex;
|
|
display: flex;
|
|
|
|
|
|
- &>div {
|
|
|
|
|
|
+ & > div {
|
|
width: 50%;
|
|
width: 50%;
|
|
}
|
|
}
|
|
}
|
|
}
|